I had an issue today where a client’s iCal Server logs would show lots of: “Unable to find any record with GUID…” events, constantly.
iCal was slowing down for everyone, server-based calendars either took ages to update with changes, or simply went offline. In the logs, some of the requests for the DAV objects were taking over 15,000 ms to service and it was all generally looking quite pear-shaped.
It turns out that iCal Server uses it’s own database to keep track of users that have been referenced by proxy through the server. If you delete a user in the Workgroup Manager, iCal Server often doesn’t clean up it’s proxy database and everything starts to slow down and can stop working completely.
Fortunately, a solution is at hand. There’s a CalendarServer Trac wiki set up and they have a fix for this very problem: ProxyCleanup. It’s a python script that first up you run to see if there are any orphaned GUIDs in use, and if there are, it can remove them from the database. After backing up the /Library/CalendarServer/Documents/principals/.db.calendaruserproxy file and running this cleanup script, iCal was back on track and running perfectly.