0

My Contacts.app crashed on launch. In the crash report I found, among others, the following excerpt:

Application Specific Information:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Multiple object mappings were found for AB key AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA= of type itemId'
terminating with uncaught exception of type NSException
abort() called
0

I specifically noticed this line Multiple object mappings were found for AB key AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA= of type itemId' which I suspected indicated that I had a duplicate somewhere in the contact database

This is how I solved it, in a terminal:

cd ~/Library/ Application\ Support/AddressBook/
grep -r MtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3jo *

(this is part of the "long string" above. It was enough for me, since the search just returned one hit, Exchange in Sources/187CB027-195A-4D96-99B2-B8A546A743DC)

This file proved to be an SQLite DB-file. Open it with some SQLite reader. I used sqlitestudio.

In this database there is one table ZMAPPING we are interested in. Find the relevant entries in this table with some SQL

select * from zmapping where zitemid like '%AAMkADM2MDFmNGNmLWM3NmMtNGYxOS1iMDg4LWY0YjI1MGYzNjYxYQBGAAAAAABDPkLykrMnSJ1IqQdY8YscBwBYGhW8CcVeTK3joidjOJa9AAAAAAEiAABYGhW8CcVeTK3joidjOJa9AAA10vffAAA=%'

In my case this query returned two lines. Note the values in Z_PK for all returned lines. Now look in the ZMAPPING table for the rows with these Z_PK values and copy the corresponding values in the column ZADDRESSBOOKUNIQUEID. Using these copied values, go back to the terminal and run a grep

$ grep -r 8F436716-52E6-49A9-AC03-2A120B08 *
…
Binary file Sources/187CB027-195A-4D96-99B2-B8A546A743DC/Metadata/8F436716-52E6-49A9-AC03-2A120B083CF9:ABPerson.abcdp matches

I now did strings on this file to find out whom's address card I was about to delete. If necessary, take note of whatever address, phone number etc you want to keep. Then delete this file.

Repeat this process for all other entries that was found (one more in my case).

Finally, delete the lines in ZMAPPING you found using the sql query. Don't forget to commit/save.

Launch the Contacts.app and recreate the deleted contact.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .