Prop projects, tricks, and traps
Nothing to do with Parallax: Disaster recovery with iCloud's bookmarks feature.
by, 01-17-2012 at 09:09 PM (1517 Views)
I was recently caught by a problem with Apple's new iCloud features, which sync a variety of info between your various iOS devices and PCs or Macs. (I don't have a Mac.) One of these reads all of your existing IE bookmarks and syncs them around to your different iCloud devices and PCs.
The problem was created by having another app running on the PC that attempts to do basically the same thing: Windows Live Mesh, from Microsoft, part of the Windows Live apps suite. These apps monitor your c:\users\<you>\Favorites folder, and sync any new creations, updates or deletions (CRUD) that they find up to your account in the cloud. Well, unfortunately, Apple's version of this feature makes a few destructive changes. In particular, it takes shortcuts that have long filenames, and truncates them down to some arbitrary length with an ellipsis (...) at the end. Since these apps aren't aware of each other, they see changes like this as user driven, and they start "fighting" with each other for control of the contents of the folder. Before I knew it, I had over 16,000 shortcuts and folders, mostly duplicates of each other with automatic "duplicate prevention" names tacked on at the end, like "Folder", "Folder (2)", "Folder (3)", and so on.
This started manifesting itself on the iOS devices as crashes about every 30 seconds, when the dataaccessd process would use all available memory and crash, and then repeat the process. Now yes, this was technically my fault for running both at once, but really, at least one of these apps should recognize the other and refuse to run, or tell the user how to avoid the issue. However, Apple exacerbates the problem by providing absolutely no means to nuke the in-cloud list of shortcuts and start with something fresh. (With Windows Live Mesh, you can at least log into Skydrive and see your favorites listed there, and manipulate them or delete them if need be.)
With a little initiative however, I have indeed been able to come up with a solution to starting fresh with your iCloud bookmarks on a Windows machine. Disclaimer: I take no responsibility for any sort of permanent damage you do to your account this way, but it's worked fine for me.
Luckily, Apple has used a web standard called WebDAV to communicate the bookmark information to their servers, and this makes it reasonably simple to nuke the contents and start over.
1) Turn off Bookmarks sync from the iCloud control panel in Windows and any other devices that use the feature. Hopefully you have a "good" backup of your bookmarks in some other folder. Or at the very least, you can now clean up the mess successfully without iCloud writing more junk back to the folder.
1) Install Fiddler2 from [URL="http://www.fiddler2.com/"]www.fiddler2.com[/URL]. This is a very useful tool that allows you to watch traffic between your computer and any websites it visits. In the Fiddler Options dialog, you will want to go to the HTTPS tab and allow it to decrypt HTTPS sessions.
2) Fiddler will start to show various HTTP and HTTPS conversations in its left hand panel. Look for sessions going to one of the icloud.com servers. After selecting one of these sessions by clicking on it, click on the "inspectors" tab in the right hand pane and look at the headers of the outbound request. It will typically take the form of a "REPORT" or "PROPFIND" or "PROPPATCH" command or what have you. You will also see the full URL that it's sending the request to, in the form of "<something>.icloud.com/<number>/bookmarks". You will need this path in the following steps, as this is the directory on their server that contains your unique bookmarks list.
3) Install another tool, Bitkinex, from [URL="http://www.bitkinex.com"]www.bitkinex.com[/URL]. This is freeware. This is a tool that allows you to see the contents of a WebDAV server folder tree in a conventional tree structure. When running it for the first time, you will want to set up a connection to the server you saw in Fiddler (just <whatever>.icloud.com) using the https protocol. When connecting to that server, you can log in using your Apple ID account credentials. This will then show a folder tree in the left pane, but it only shows you the root and none of the underlying folders.
4) Now press Ctrl-D, and enter the remainder of the path you saw in fiddler after the name of the server, this will end in something like "<number>/bookmarks". After entering this information, you should now see the folder tree refresh and the contents of the folder will expand to show a lengthy list of gibberish (unique) folder names for any of your bookmark folders, as well as some files representing the shortcuts within your original shortcuts root folder.
5) Click on any of the file or folder elements in the [B]right [/B]pane (not the left!) and then press Ctrl-A to select them all. They should all highlight. Once they're highlighted, you can now click the delete icon on the BitKinex toolbar. You will likely get a confirmation dialog from BitKinex, to which you can respond Yes to All (otherwise this will be a very slow and painful process.)
The files and folders will now all be deleted - this can take quite some time if you have a lot of them, but you should be able to see progress in the Bitkinex status area, and the 1 "Active request" in the smaller bitkinex connection dialog. When this is all complete, you will have an empty "bookmarks" folder on the icloud server.
You can now exit all of these tools, and reenable iCloud bookmark sync. It will run much faster, consume much less memory, and start from the point of view of a fresh system using whatever bookmarks you choose to place in the local Favorites folder. Yay!