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:

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

BEGIN:VCARD
VERSION:3.0
N:Test;John;Q.;Mr.;
FN:Mr. John Q. Test
ORG:Company B;
EMAIL;type=INTERNET;type=WORK;type=pref:jqtest@companyb.com
TEL;type=WORK;type=VOICE;type=pref:800-800-0000
END:VCARD


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.

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

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.

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.