OSX iCloud Contacts not syncing

In the last month I was plagued by a Addressbook problem on one of my macs. No matter what, only about 500 of my over 1000 contacts where syncing on my Mac Pro. I have tired many times to disable and re-enable the contacts, to export all the contacts on the only mac where my contacts were complete, empty the address book and reimporting the contacts, but with limited success. Some corrupt contact was blocking my Mac Pro form syncing.

The console messages where not really helpful ranging from a generic

AddressBookSourceSync[1717]: -[ABAddressBook save] failed. (<ABAddressBook: 0x7ff22409be10>)
AddressBookSourceSync[1717]: [CardDAVPlugin-ERROR] -_saveChanges: [syncAddressBook(<ABAddressBook: 0x7ff22409be10>) save] FAILED

to a more usefull

AddressBookSourceSync[1717]: Error saving address book: Error Domain=NSCocoaErrorDomain 
Code=1570 "originalLine is a required value." UserInfo=0x7ff221476830 {NSValidationErrorKey=originalLine, NSLocalizedDescription=
originalLine is a required value., NSValidationErrorObject=<NSManagedObject: 0x7ff2260b0bd0> (entity: ABCDUnknownProperty; id: 0x
7ff2260b0e30 <x-coredata:///ABCDUnknownProperty/tDF644D3A-163E-41D1-9FF1-FE3FFFEACCB9313> ; data: {
            originalLine = nil;
            owner = "0x297080014b <x-coredata://27456235-94C4-4D22-865D-648669DD6CA2/ABCDContact/p42434>";
            propertyName = "X-MS-OL-DESIGN";
        })}

X-MS-OL-DESIGN was a starting clue so I exported again all contacts in vcf and opened the file in a text editor to find which ones had the X-MS-OL-DESIGN property. The idea was to edit them, and remove the offending property. But first I wanted to check if this was really the cause of my problems. So every time I found a contact with the X-MS-OL-DESIGN property I copied it into a secondary iCloud account that I created years ago and deleted it from my primary account. After removing all entries with the X-MS-OL-DESIGN property, I was able to sync all remaining contacts on the Mac Pro. Moreover, by moving the offending contacts to the secondary account, the offending property was gone, and I was able to move them back in the primary account and they where synced perfectly.

10 Replies to “OSX iCloud Contacts not syncing”

  1. You are the man!
    Many many thanks for this post on cpmtacts npot syncing.
    Opened v-card with textwrangler, found 2 contact with the offending x-mo-whatever. delted them. Now all is fine. Very much appreicate your post.

  2. You, sir, are a scholar and saved my iCloud contacts. Been working on that for the whole day until I found your method. Applause!

  3. Thank you so much for this information! It helped me resolve sync issues using carddav with OS X server!!!!

  4. Thanks! I had the same problem just today. My Property was “SORT-STRING” but I did as you said: export it in icloud, check for the problematic entries, moved them.

  5. Same problem here – French user 🙂

    the offending issue was propertyName = label

    How to solve:
    1 – make a VCF archive from iCloud
    2 – grep the file for “label” like :
    cat YOUR_EXPORT_FILE_NAME.vcf | grep -B11 label| grep “FN:”
    3 – export these cards, one by one
    4 – delete them one by one from iCloud
    5 – import them into another iCloud account
    6 – export them from this new iCloud account
    7 – import them back into your original iCloud account, from the Web or Contacts does not matter

    What worries me is that the property name “label” did not completely disappear after this giant clean up, for the same specific above contacts, and even shows up as doublons:

    example:
    cat YOUR_LAST_ADDRESSBOOK_EXPORT.vcf | grep -B11 label| less
    ….
    label;charset=utf-8;type=work;type=pref: CITY\nCOUNTRY
    label;charset=utf-8;type=work;type=pref: CITY\nCOUNTRY
    label;charset=utf-8;type=work;type=pref: CITY\nCOUNTRY….
    It’s weird to see 3 or 4 times the same “label” (always city / country by the way) whereas AddressBook only shows one city one country !

    Here are some logs where “propertyName = label;” was the KEY to narrow down the problem

    par défaut 15:25:12.539823 +0100 AddressBookManager subsystem: com.apple.calendar, category: calendar, enable_level: 1, persist_level: 1, default_ttl: 7, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
    par défaut 15:25:12.546912 +0100 AddressBookManager subsystem: com.apple.coredata, category: error, enable_level: 0, persist_level: 0, default_ttl: 14, info_ttl: 1, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
    erreur 15:25:12.547009 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘uniqueId’ for entity ABCDInfo while resolving selector ‘uniqueId’ on class ‘ABCDInfo’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    erreur 15:25:12.568718 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘serialNumber’ for entity ABCDAddressBookSource while resolving selector ‘serialNumber’ on class ‘ABCDAddressBookSource’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    par défaut 15:25:12.574488 +0100 AddressBookManager -awakeFromLoad
    par défaut 15:25:12.575402 +0100 AddressBookManager -setServername: Parsed into scheme: https host: port: 0 path:
    par défaut 15:25:12.575784 +0100 AddressBookManager -initWithUID: called on thread:
    par défaut 15:25:12.577769 +0100 AddressBookManager -clearPrincipalProperties
    par défaut 15:25:12.577850 +0100 AddressBookManager -clearHomeContainers
    erreur 15:25:12.938843 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘uniqueId’ for entity ABCDAddressBookSource while resolving selector ‘uniqueId’ on class ‘ABCDAddressBookSource’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    erreur 15:25:12.952292 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘uniqueId’ for entity ABCDContact while resolving selector ‘uniqueId’ on class ‘ABCDContact’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    erreur 15:25:12.954685 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘uniqueId’ for entity ABCDURLAddress while resolving selector ‘uniqueId’ on class ‘ABCDOwnedObject’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    erreur 15:25:12.954866 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘url’ for entity ABCDURLAddress while resolving selector ‘url’ on class ‘ABCDOwnedObject’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    erreur 15:25:12.955074 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘label’ for entity ABCDURLAddress while resolving selector ‘label’ on class ‘ABCDOwnedObject’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    erreur 15:25:12.955280 +0100 AddressBookManager warning: dynamic accessors failed to find @property implementation for ‘isPrimary’ for entity ABCDURLAddress while resolving selector ‘isPrimary’ on class ‘ABCDOwnedObject’. Did you remember to declare it @dynamic or @synthesized in the @implementation ?
    par défaut 15:25:13.229522 +0100 Contacts -preprocessChanges(-willInsertRecords:): inAddressBook: , writeChangesToServer==NO, IGNORING 161 records
    par défaut 15:25:13.229717 +0100 Contacts -preprocessChanges(-willUpdateRecords:): inAddressBook: , writeChangesToServer==NO, IGNORING 11 records
    par défaut 15:25:13.248568 +0100 Contacts -postprocessChanges(-didInsertRecords:): inAddressBook: , writeChangesToServer==NO, 161 records
    par défaut 15:25:13.248702 +0100 Contacts -postprocessChanges(-didUpdateRecords:): inAddressBook: , writeChangesToServer==NO, 11 records
    par défaut 15:25:13.249183 +0100 Contacts Error saving address book: Error Domain=NSCocoaErrorDomain Code=1560 “Plusieurs erreurs de validation sont survenues.” UserInfo={NSDetailedErrors=(
    “Error Domain=NSCocoaErrorDomain Code=1570 \”originalLine est une valeur obligatoire.\” UserInfo={NSValidationErrorKey=originalLine, NSLocalizedDescription=originalLine est une valeur obligatoire., NSValidationErrorObject= (entity: ABCDUnknownProperty; id: 0x60800143b740 ; data: {\n originalLine = nil;\n owner = \”0x5bb3c002eb \”;\n propertyName = label;\n})}”,
    “Error Domain=NSCocoaErrorDomain Code=1570 \”originalLine est une valeur obligatoire.\” UserInfo={NSValidationErrorKey=originalLine, NSLocalizedDescription=originalLine est une valeur obligatoire., NSValidationErrorObject= (entity: ABCDUnknownProperty; id: 0x600000e29aa0 <x-coredata:///ABCDUnknownProperty/
    par défaut 15:25:13.254217 +0100 Contacts -[ABAddressBook save] failed. ()
    panne 15:25:13.254367 +0100 Contacts -doSyncWithServer: [syncAddressBook() save] FAILED
    par défaut 15:25:14.249626 +0100 ContactsAccountsService __51-[ACRemoteAccountStoreSession _configureConnection]_block_invoke.62 (57) “The connection to ACDAccountStore was invalidated.”

Leave a Reply

Your email address will not be published. Required fields are marked *