Address Book and iCloud problems

The Address Book is one of those programs Mac power users love to complain about. It’s continually compared with more powerful PIMs and found wanting. The Lion version was subjected to even more criticism, partially because it got the same “leather” treatment that iCal got, but mostly because its new “open book” look eliminated the three-pane view that many users found useful.

Generally speaking, Address Book has worked fine for me, probably because most of my interaction with it is indirect. I have some scripts that pull out information I need regularly, and most of my other dealings with it are mediated through LaunchBar. Like most people, I’ve chafed against the new restriction to two panes, but it hasn’t been debilitating. Besides, I’ve read that the three-pane view—albeit somewhat squeezed—is coming back in Mountain Lion.

But my relationship with Address Book took a wrong turn last week, and I’m not sure we can ever be friends again. Part of the problem was Address Book itself, part was its syncing through iCloud—I’ll do my best to explain both.

One thing I won’t try to explain is the loss of data that led to this tweet:

Hours of work cleaning up Address Book lost because of a corrupted file. Time Machine backups don’t have the changes. Fuck.
  — Dr. Drang (@drdrang) Tue Mar 27 2012

I won’t try to explain it because I don’t know why it happened. Could be a problem with Address Book, an operating system error, a filesystem bug, or a hardware failure. Since I haven’t pinpointed the cause, I can’t blame it on Address Book. That doesn’t mean I’m not still pissed about it, but I don’t know what to be angry about.

Let’s start by talking about a bug in Address Book that bit me several times last week. I had set aside some time to update my Address Book in preparation for a company-wide mailing that was going out to our clients. Many of my entries had stale information that needed freshening. Some people had changed jobs, some were still working at the same place, but the company name had changed—lots of little things like that.

Luckily, many of the contacts that needed updating had vCards available for download from their employers’ websites, and Address Book can import vCards. Now I could have just replaced the old information with the vCard info, but doing so would have erased things like mobile phone numbers and my notes that were still valid and which I wanted to retain. Address Book has an option for merging the two sets of information and even gives you an opportunity to see what the blended entry will look like before you approve it. I used that option again and again, happy to be saving myself a lot of work.

At some point, though, I noticed that the entry for one of my contacts who had changed firms was still showing her old company. Her phone numbers had changed, as had her address and title, but the company name hadn’t. And as I started looking through my recently updated entries, I found that same problem again and again—the company name wouldn’t change when I updated the entry using a vCard.

To make sure this was an Address Book problem and not my imagination or some oddity in my clients’ vCards, I made up a test entry:

Test entry before update

Then I made a vCard for this same fake person, but with updated information:

FN:Mr. John Q. Test
ORG:Company B;
ADR;type=WORK;type=pref:;;1337 Main Street;Chicago;IL;60606;USA

When I dragged the icon for the vCard onto the Address Book icon, I was told it was a duplicate and given the opportunity to review it. With one of the options, I could see both the old and new entries.

Keep both option

With another, I could see what the blended entry would be, with only the new information changed.

Updated option

The updated option was what I wanted, because it fixed the things that had changed, but left the mobile phone number (which didn’t have an entry in the vCard) as it was. But when I told Address Book to update the entry this way, this is what I got.

Test entry after update

As you can see, the company name wasn’t updated. The new company name was put down in the notes, which is better than throwing it away, but it wasn’t put where I wanted it and—what’s more important—it wasn’t put where Address Book had just told me it was going to put it.

This is exactly what had happened with the vCards for my clients. I looked back and saw that their entries also had the new company name in the notes field. I had missed this earlier because I often had several lines of notes for an entry, and the new line had escaped my attention.

I don’t see how this can be considered anything other than a bug. There’s no reason for the old company name to be retained, and there’s really no reason for the entry to end up with information that doesn’t match with what Address Book just told me.

The iCloud problem is a bit more mysterious. After all my Address Book entries were updated with fresh information, I opened up the Contacts app on my iPhone to make sure that the changes had synced properly. The little gear icon on the phone spun and spun as the new information was downloaded, and when the spinning stopped it looked like all the contacts had updated as they were supposed to.

Except for two clients, who didn’t appear on my phone at all.

Maybe, I thought, iCloud was running slow, and those contacts would update later. I went home for the day. Later that night, when I opened Address Book on my MacBook Air,1 all the contacts I’d updated during the day updated themselves on the MB Air. Including the two that hadn’t synced to the phone and were still not synced to the phone.

I set up a VNC connection between my MB Air and my iMac and began experimenting with these two entries. Whatever changes I made on one machine synced quickly and accurately to the other but never got to the phone. There was just something about those entries that either iCloud or—more likely—the iOS Contacts app didn’t like.

I solved the problem by making new entries for each of these clients and typing their information into the new entries by hand—no importing, no cutting and pasting. The new entries synced to the phone almost immediately, and I deleted the old, unsyncable ones.

I say I “solved” the problem, but this was really no solution at all. It was luck that I noticed the two entries that wouldn’t sync. It’s possible that there are others I haven’t noticed. How can I trust my iPhone’s Contacts app now that I suspect it of playing favorites? How can it be that an entry that syncs perfectly between two Macs not sync with an iPhone? And how can it be that its failure to sync isn’t accompanied by some sort of warning to let me know that it failed? This isn’t the harmony Apple has been promising us.

I’m calling this an iCloud problem even though I suspect the real problem lies within Contacts. But since it’s Contacts’ syncing through iCloud that isn’t working, I don’t think calling it an iCloud problem is unfair.

Although I haven’t blogged about it before, I’m firmly in the camp of people who feel skeptical—if not outright hostile—toward Apple’s plan to come out with a new version of OS X every year. New versions mean new bugs, bugs that take time to find and squash. How will Apple be able to squash bugs like these if its OS X programmers are sweating to meet a summer release for Mountain Lion?

Although the computer press would vilify Apple for it, I’m holding out hope that the “new version every year” thing is just marketing bullshit, that what will be touted as a new version will in fact be what in earlier days would have been a point release. That’s the only way I see stability returning to OS X.

  1. All the updating had been done on my office iMac. 

3 Responses to “Address Book and iCloud problems”

  1. Carl says:

    Yeah, I think the cardinal sin of iCloud is that there’s no “SYNC THIS NOW DAMMIT” button, and no canonical view of your data. I understand why Apple does it their way (no sync button is “simpler” and prevents voodoo OCD pushing of the button; no canonical view means the DB can be consistent eventually instead of always consistent, which is much cheaper), but it drives me nuts.

  2. Wilson says:

    You have my sympathies. I’ve been struggling with Address Book syncing problems for years now. As far as I can tell, iCloud address syncing is just MobileMe syncing with a new name. All of my tests run into the same problems that users had with MobileMe.

    I’ve also found that exported contact data contains old data that was deleted in the past. Periodically this data will reappear in contacts much later, usually after merge or sync operations. It’s as if Apple was trying to create a contact database that had some of Time Machines ability to look at previous record states, but abandoned it unfinished.

    I honestly don’t see new bugs in AddressBook, because they haven’t bothered to change much, even with OS updates. Or rather, AddressBook itself may have changed, but SyncServices - the mechanism connecting AddressBooks to the SyncServices database - remains unchanged.

  3. Dr. Drang says:

    I don’t know, Wilson, it’s possible that my syncing problems are due to old bugs rather than new ones. Other than for a few months when I had a free trial account, I never used MobileMe (or .Mac) because I heard nothing but bad things about them. I synced my phone by physically connecting it to my Mac; as far as I know, there were never any “straggler” contacts that wouldn’t sync to the phone.