How to reset OmniFocus WebDAV logins

December 26, 2014

A few months ago I wrote about using Box’s WebDAV to sync OmniFocus across devices, and have since decided to move my OmniFocus database from my corporate Box account to my personal one. This wasn’t as easy as it should have been, and frankly, I was starting to think that the only solution was to delete and reinstall OmniFocus on OS X and iOS.

The gist of the problem is that, bizarrely, neither version of OmniFocus lets you reset the login credentials for a WebDAV account, and the WebDAV URL for Box accounts is the same no matter the login/pass. (I found just one mention of this issue on the official support forum, but there’s been no response.) In fact, even if you change the URL to something nonsensical and let the app fail when trying to sync, it will still use the old credentials when you revert back to the correct URL (i.e., it never prompts you to re-enter your credentials).

Before I started digging into system and support files to look for where the credentials might be stored (so I could delete them), I wondered if, because WebDAV was just an extension of HTTPS, I could simply inject my new credentials into the URL, like so: http://login:pass@domain. Turns out you can…sometimes, but with OmniFocus that didn’t work. In various combinations, the scheme either broke completely, or was just flat-out ignored, and the sync progressed as usual, with the old credentials.

As I was flailing around I tried using just http://:@domain (i.e., no credentials at all), and on OS X this forced the user/pass prompt! I plugged in my new credentials and it started syncing to the new account. Whew.

Unfortunately, this didn’t work on iOS. :@ is simply ignored like every other combination. Short of deleting and reinstalling the app, I was at a loss as to how to resolve this on iOS. The only solution I could come up with was resetting the database (SettingsDatabaseReset). Once you do that, you’ll finally be prompted for a login/pass when you go to the WebDAV settings. It’s not a perfect solution, but gets around you having to delete/reinstall the app and rejigger all of your settings.

You should follow me on Twitter here