Firefox error resolved: One or more files could not be updated
I have automatic updates enabled in Firefox. For my day-to-day work, I run as a non-administrator user in Windows XP. I need to log in as an administrator whenever I want to install new software - including updates for Firefox.
The problem is that Firefox is not content to just update all necessary files when you are logged in as the administrator. When you return to your non-admin account and launch Firefox, you may be greeted with the following message:
"One or more files could not be updated. Please make sure all other applications are closed and that you have permission to modify files, and then restart Firefox to try again."
You can click through the message, and Firefox will launch anyway. Okay, I guess the updates weren't that important and I can ignore the message. However, the next time I launch Firefox, and am again prompted and again click through it. It seems I am doomed to launching Firefox with two clicks for all eternity.
Of course I searched the internet for the error message, but nothing very fruitful came of it. Apparently the error has a number of different causes. I did find some others reporting the problem when run as a non-administrator, but the solution was always "just run as administrator" or "elevate your rights".
I finally solved the problem without changing any rights for my user account, and am now posting it here in hopes that others will find it useful.
UPDATE: Based on suggestions in the comments, I've started using a much simpler method. If you have an administrator password, you can run the following command in a Command Prompt:
runas /user:Administrator /noprofile /env "C:\Program Files\Mozilla Firefox\firefox.exe"
The rest of this article is unnecessary if you want to follow this "delete the updates folder" approach.
Note: you must be able to log in as an administrator on the computer, but your primary user account does not have to be an administrator.
Pre-requisite: As an administrator, download and install Process Monitor from Sysinternals/Microsoft.
- Close all running instances of Firefox.
- Open an Administrator command prompt by right-clicking on a Command Prompt icon, choose Run As... and enter the credentials of a user with administrator rights.
- Launch Process Monitor from the administrator command prompt by typing the full path to the executable (wherever you installed it). For example: c:\apps\procmon.exe (tab completion can be very helpful for this step).
- Within Process Monitor, turn off "Show Registry Activity" and "Show File System Activity" from the toolbar. Only "Show Process and Thread Activity should be enabled". This step is not absolutely necessary, but it will eliminate a lot of extra noise.
- Start Firefox, and click through the "Software Update Failed" dialog until the browser opens.
- Switch back to Process Monitor and press CTRL-E or the click the toolbar button to stop capturing events. Close any Firefox windows that might be open.
- Scroll through the list of processes and double-click on the first instance of "updater.exe" (it should have the value "Process Start" in the Operation column). Switch to the Process tab of the Event Properties window that opens.
- Select the entire contents of the "Command Line:" textbox and copy it (CTRL-C or right-click, Copy). It should look something like this (all one line): "C:\Documents and Settings\Josh\Local Settings\Application Data\Mozilla\Firefox\Mozilla Firefox\updates\0\updater.exe" "C:\Documents and Settings\Josh\Local Settings\Application Data\Mozilla\Firefox\Mozilla Firefox\updates\0" "3824" "C:\Program Files\Mozilla Firefox" "C:\Program Files\Mozilla Firefox\firefox.exe"
- Switch back to the administrator command prompt and right-click, Paste to paste the command-line. Press Enter.
- You should see a dialog indicating that Firefox is updating. Close the browser that opens since it is still running as the administrator.
- Now open Firefox normally. It should start up without the annoying error message.
I'm not sure if the command-line from step 8 is always the same (the "3824" is the only part I can imagine would vary). If it is always the same, you can save a lot of steps on subsequent updates by just creating a batch file with that command and running it as administrator. If anyone has any insight to the parameters of this command, let me know.