I've been having synchronisation issues with .Mac services recently related to my iCal calendars. Usually, resetting the .Mac copy with a local copy from one of my computers solved the problem. But not this time.
The SyncServer was generating errors like:
iCalExternalSync [ICalExternalSync ]NSException name:NSInvalidArgumentException reason: [ISyncConcreteSession clientAcceptedChangesForRecordWithIdentifier:formattedRecord:newRecordIdentifier:]: you can't change the record identifier from 24A0D606-9C62-498A-80BF-0139313AA98D to node_LocalCalendar/p1: it is already associated with a different record.
|Error|Problem encountered while merging changes in Sync Engine: you referenced the following records (in a relationship) but did not actually push them: ( "08C4CB22-E92D-4CB5-8C1B-3EDA9E2E11F5", "0EDD7D55-9B30-43D7-BA88-84448FAB8FB9", [..]
Until the calendar synchronisation stopped all together. A dialog box told me that the data was inconsistent, and needed to be reset on .Mac.
"Calendars could not be synced due to inconsistent data. Confirm that your computer's data is valid, then reset Calendars on .Mac in System Preferences."
Fair enough. But it didn't solve the problem. Sync still wowed. I restored a backup copy of my calendars, and that didn't do the trick either. I restored a backup copy of another of my computers. That failed too. This was becoming irritating to say the less. At this point, the synchronisation was running on an hourly basis, but the calendars weren't being synched, and I wasn't being told.
To cut a long and boring story short, here's a workaround that worked for me: you need to start fresh again - really fresh. Wiping out all traces of previous synchronisations, caches, etc. Apparently there was some kind of discrepency in my SyncServer cache. Meaning I had to:
- Quit all applications that use .Mac (Address Book, iCal, iSync, Mail, Safari);
- Turn off .Mac syncing and unregister all computers in System Preferences;
- Issue the following commands from the terminal:
killall SyncServer cd ~/Library/Application\ Support mv SyncServices SyncServices-old killall SystemUIServer
- Turn on .Mac syncing in System Preferences and click "Sync Now".
- When a dialog appears asking whether to merge or replace data on .Mac, select replace all data on .Mac with data from the computer.
You need to perform this on all your registered computers synching on .Mac except point #5: replace your local data with the fresh copy you just uploaded. My logs activity calmed down after that, no more errors. Sync bliss.
This workaround comes essentially from various Apple Discussions thread such as: