December 21st, 2011 • 4:09 pm
When I switched from MobileMe to iCloud a couple of months ago, it all went relatively smoothly for me except for one thing: bookmarks syncing. As I reported back then, as soon as I turned bookmarks syncing on in iCloud’s preference pane on my Mac Pro, I started experiencing the constant crashing of a background process called “SafariDAVClient.”
Back then, I didn’t have time to explore the issue, so I just turned bookmarks syncing off on my Mac Pro altogether. The syncing still appeared to work for the few minutes that it was on, so I was still able to get my bookmarks synced (at least the most visible ones, in the Bookmarks Bar and in the Bookmarks Menu), before the process started crashing again and again.
What I did do after a while is that I submitted a bug report to Apple via Bug Reporter. I tried to attach a Zip archive including my entire ~Library/Safari/ folder, but it was too big and I had to upload it to Apple’s servers via FTP.
They got back to me after a while and obviously didn’t manage to get a hold of the file I had uploaded, so I submitted it again. After a few weeks, Apple got back to me asking me to “enable BookmarkDAV logging” using special instructions via Terminal, and send the logs back to them. I followed their instructions and was able to gather all the logs that they needed, and I sent everything back to them.
A week later, they got back to me again, this time saying:
Thank you for providing the information needed to pinpoint this issue. In the meantime please delete the “Search Category – Auteurs Amateurs” bookmark, that’s causing his crashers.
The “Search Category – Auteurs Amateurs” bookmark in question is not what you think… It was actually a very old bookmark that I had created once for a specific category of amateur poetry web sites in Netscape’s on-line directory (back when they had an on-line directory). When I say “very old,” I mean that this was a bookmark that I had created about 15 years ago, in the early years of the Internet.
And sure enough, when I searched through my Safari bookmarks on my Mac Pro, I found such a bookmark. In fact, I found about 50 copies of the bookmark! Whatever this bookmark contained in its URL, it was definitely not agreeing with Safari’s bookmark management engine and causing serious problems, including the SafariDAVClient crashes.
The problem was that, while I was able to delete all the local copies of this bookmark in Safari on my Mac Pro, as soon as I turned bookmark syncing back on, iCloud would merge my local bookmarks with the ones stored in the Cloud and put the offending bookmark back in, triggering the creation of multiple copies of it again, and causing the SafariDAVClient crashes again.
I was caught in some kind of vicious circle.
I figured that the way to get out of this vicious circle was to go in the Cloud itself and delete the bookmark there, so that it would be gone once and for all. But guess what? You cannot do that. True to its name, the “Cloud” in iCloud is a partly opaque thing that you have very limited control over. If you try to go to icloud.com and log in using your iCloud ID and password, this only gives you access to a few things, and bookmarks are not one of them. In other words, there is no user interface to manage your bookmarks in the Cloud itself.
So how was I going to get rid of the offending bookmark? I searched through the Apple Discussions forums and found several threads with titles such as “how do I delete my iCloud bookmarks?,” “deleting bookmarks in iCloud,” “How can bookmarks be replaced in iCloud?,” and so on.
Clearly, I was not the only one struggling with this type of problem. But none of the threads offered any really satisfactory answer that would help in my particular case.
Then it finally hit me. While iCloud is opaque and the merging process appears to prevent you from actually deleting stuff, it’s obviously not true. What you need to do is delete the bookmarks in a way that forces iCloud to remove the bookmarks in the Cloud itself. I was not able to do this on my Mac Pro, because of the constant crashing of SafariDAVClient. But I could do it on the other device that I have that also syncs with iCloud, which is my iPad.
In other words, I could:
- Turn bookmarks syncing off on my Mac Pro.
- Delete the offending bookmark(s) in Safari on my Mac Pro, noting where they were stored exactly in the bookmark folder hierarchy.
- Turn bookmarks syncing on on my iPad.
- Go in Safari on the iPad and delete the offending bookmark in Safari’s bookmarks there. That was the crucial step: since bookmark syncing was working fine on the iPad, and at that stage the iPad was the only device syncing with iCloud, deleting a bookmark on the iPad would delete it in the Cloud as well.
- Then wait until the bookmarks on the iPad were synced properly, and turn bookmark syncing back on on the Mac Pro.
Now of course the problem is that the iPad user interface is far from ideal for this. Bookmark management features are fairly limited. You can only bring up the complete list of bookmarks and browse through it manually and then click on the “Edit” button to edit the contents of a particular folder. With multiple folder levels and hundreds of bookmarks in the folders (and no way to sort them), it makes it a bit challenging to find a specific bookmark and delete it. It’s also hard to tell when the bookmark syncing process taking place in the background is complete. The only sign of any activity is the indefinite-wait animation in the top bar in iOS indicating network activity. (If you try to edit bookmarks while iOS is still in the process of syncing them, you also get a warning asking you to wait until the syncing is done, which is quite frustrating since there is no real visual indication of the process taking place.)
Finally, the bookmarks syncing process appeared to be over, and I turned bookmarks syncing back on on my Mac Pro and… it worked! I no longer get SafariDAVClient crashes, and my bookmarks are now constantly in sync between my Mac Pro, iCloud, and my iPad.
I still find the fuzziness of this Cloud thing rather frustrating. It seems to me that there definitely should be a way to edit bookmarks directly in the Cloud, via a web-based interface. And other Mac users share the same frustration. But at this point Apple’s engineers don’t appear to agree, and the only way to deal with the opacity of bookmarks syncing is to use a process such as the one I described above.