Earlier this month Mozilla released Firefox 3.5 which comes with a whole lot of new features and bug fixes. So yesterday I finally updated and found everything working fine – well almost everything.

I went to some Website where I certainly had my credentials saved in Firefox’ password store, but for some reason they asked for the login again. First I did not really bother – this may happen I though.

Today though, I went to my online banking site and wondered why Firefox asked me to save my login or not. As I never save credit card or any other payment related information in my Browser’s password list, I got to the point that something must be wrong here. So I opened Firefox’ password list and it was empty (not counting those 4 or 5 I entered since yesterday)

Obviously installing FF3.5 over my existing 3.0 version deleted all my passwords – great! Some research on Google showed the following facts:

Situation

  • Mozilla is trying to replace all legacy data storages with SQLite driven ones. During the last FF 1.0 –3.0 updates they migrated the the bookmarks, visited sites and other lists to SQLite. I believe this a good thing as it opens these storages to external tools/applications and makes interoperability much easier.
    For FF 3.5 they obviously moved the Password list to SQLite
  • Many users reported that they lost their passwords with FF 3.5 too – so its not a random failure with my update.
  • Mozilla knew about the situation before 3.5 was released, as this bug report proves. Unfortunately the developers where not able/did not have the time to reproduce this bug and they did not stop the release for that one.
  • By following various threads about that issue it turned out that FF3.5 on initial startup (after an update from 3.0 that is) tries to read the old key3.db and signons3.txt files, in order to import them into the new SQLite format in signons.sqlite. Unfortunately this process fails (because something in in key3.db might be broken as assumed by some Mozilla developers) – resulting in an empty password storage in FF3.5
  • Luckily the old key3.db and signons3.txt files are NOT overwritten/deleted by FF3.5 so nothing is really lost.

Solution

  1. Backup first! Make a backup of your Firefox profile directory (see below) – I am not responsible for any damage ;-)
  2. The first solution proposed by some guys in the Mozilla forums was to terminate FF, go to your FF profile directory (see below) and delete (the new) signons.sqlite file.  Restarting FF will now trigger the import/conversion again. Some users reported that this was successful eventually. For me it did not work though.
  3. If 2 doesn’t help, then do this:
    1. Install Portable Firefox 3.0 – that version runs straight off a single directory – even directly from a USB stick.
    2. Start FF Portable once, and terminate it again.
    3. Locate it’s profile directory (on my USB stick it’s:  F:\FirefoxPortable\3.0\Data\profile)
    4. Install the Password Exporter plugin, both on FF Portable and your “regular” Firefox
    5. Export your passworts from FF Portable to an XML file
    6. Close FF Portable and start your regular FF
    7. Import the passwords from the XML file you just created
    8. If 7 does not work, saying that the XML file cannot be imported, then some of your password entries contain invalid characters. I opened my XML export file in Visual Studio (Internet Explorer will also warn about these invalid chars) and found two lines where the Password field names contained “<” or “>” characters. I deleted both entries.

The “<”  “>” invalid character issue is probably not the reason why FF 3.5 fails on the automatic conversion, but it’s more likely an issue of the password exporter plugin. To me it looks more likely that FF stumbles about duplicates my key3.db file apparently contained. The Password Exporter plugin listed a couple of duplicates and simply skipped them.

Where the Firefox profile directory?

Under Vista/Windows 7 the profile directory looks like this:

C:\Users\{Your Name}\AppData\Roaming\Mozilla\Firefox\Profiles\1234abcd.default

  • {YourName} is your Windows profile/login name
  • 1234abcd is the identifier of your Firefox profile. You might have more than one of these directories, if you have more than one Firefox profile.
  • Benjamin Lee
    Thanks for the writeup .... I was getting pretty crazed trying to get into a number of sites after my old laptop crapped out on me.
blog comments powered by Disqus
CodeGear Technology Partner