Manage Firefox updates

Firefox for Enterprise Firefox for Enterprise Etuɖedzi mamlɛ: 2 weeks, 4 days ago 63% of users voted this helpful
Ameɖeke me meɖe article sia gɔme haɖe o. Ne enya alesi SUMO localize na nuwoe la, dze nuwogɔmeɖeɖe fifia. Ne edi be yea srɔ alesi naɖe articlewo gɔme na SUMO la, meɖekuku dze egɔme le afii.

This article is intended for IT administrators who wish to set up Firefox on the computers within their organization.

We recommend keeping automatic updates enabled for all Firefox deployments to ensure that the latest security patches are applied and all features are available, but your specific environment may prevent automatic updates.

Both Firefox Rapid Release and Firefox Extended Support Release can be used in your Enterprise environments. If you're concerned about frequent large updates, we recommend checking out Choose a Firefox update channel to learn more about Firefox Extended Support Release.

Major update frequency Major update scope Minor update frequency Minor update scope
ESR Every year

See calendar

New features delivered and bugs fixed in the last 12 months. Every 4 weeks or when necessary Critical stability or security bug fixing
RR Every four weeks

See calendar

New features delivered and bugs fixed in the last 4 weeks When necessary in-between major releases Critical stability or security bug fixing


Disable Firefox updates

Automatic updates are enabled by default, but you can disable them using the DisableAppUpdate policy.

When updates are enabled, they can be installed silently without user approval by enabling the AppAutoUpdate policy.

Troubleshooting Firefox update issues

If a workstation does not receive Firefox updates, the following PowerShell checks can help identify the root cause.

Check local Group Policy (GPO) registry keys

Run the following command:

Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Mozilla\Firefox" | 
Select-Object DisableAppUpdate, AppAutoUpdate

Expected values:

Registry value Expected value
DisableAppUpdate 0
AppAutoUpdate 1

If these values are not set as expected, Firefox updates may be disabled by local or domain Group Policy.

Check the installed Firefox version

Run the following PowerShell command:

Get-ChildItem -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" |
Where-Object { $_.PSChildName -like "Mozilla Firefox*" } |
ForEach-Object {
    Get-ItemProperty $_.PsPath |
    Select-Object DisplayName, DisplayVersion, Publisher, InstallDate
}

Compare the installed version with the latest Firefox ESR version available on Mozilla’s website.

Check the scheduled task

Firefox relies on a background scheduled task to download and apply updates.

Run the following PowerShell command:

Get-ScheduledTask | 
Where-Object { $_.TaskName -like "*Firefox Background Update*" } | 
ForEach-Object { Get-ScheduledTaskInfo $_ }

-> Ensure that:

  • The task exists
  • The task is enabled
  • The task runs successfully without errors

Check Mozilla Maintenance Service

On Windows, Firefox updates may require the Mozilla Maintenance Service to be installed and running. This service allows Firefox to apply updates without requiring administrative privileges.

Check if the service exists and its status

Run the following PowerShell command:

Get-Service -Name MozillaMaintenance -ErrorAction SilentlyContinue |
Select-Object Name, DisplayName, Status, StartType

-> Expected behavior:

  • The service exists
  • Status is Running (or Stopped, but able to start)
  • StartType is set to Automatic or Manual
  • If the service is missing, Firefox may not be able to apply updates automatically.

Start the service manually (if required)

If the service exists but is not running, try starting it. Run the following PowerShell command:

Start-Service -Name MozillaMaintenance

Check again that the service starts without errors.

Reinstall the Mozilla Maintenance Service

If the service is missing or corrupted, it can be reinstalled using the Firefox installer:

  1. Download the Firefox installer matching your deployment (ESR or standard release).
  2. Run the installer as Administrator.
  3. Ensure that Install Mozilla Maintenance Service is selected.

After installation, recheck the service status.

Check BITS transfers (Background Intelligent Transfer Service)

Firefox uses BITS to download updates in the background.

Run the following PowerShell command:

Get-BitsTransfer | 
Where-Object { $_.DisplayName -match 'mozilla' -or $_.RemoteName -match 'mozilla' } | 
ForEach-Object {
    $job = $_
    foreach ($file in $job.FileList) {
        [PSCustomObject]@{
            DisplayName        = $job.DisplayName
            JobState           = $job.JobState
            BytesTransferredMB = [math]::Round($file.BytesTransferred / 1MB, 2)
            BytesRemainingMB   = [math]::Round(($file.BytesTotal - $file.BytesTransferred) / 1MB, 2)
            ProgressPercent    = if ($file.BytesTotal -gt 0) { 
                                     [math]::Round(($file.BytesTransferred / $file.BytesTotal * 100), 2) 
                                 } else { 0 }
            RemoteURL          = $file.RemoteName
            LocalPath          = $file.LocalName
        }
    }
}

-> What to check

  • JobState shows the current transfer state (transferring, suspended, completed, or error).
  • ProgressPercent indicates download progress.
  • RemoteURL shows the URL used by Firefox to retrieve the update.

-> If the download is blocked

If progress does not advance or the job fails, verify that the URL shown in RemoteURL is not blocked by your network, firewall, or proxy.

To confirm, copy and paste the URL into a browser and check whether the download starts successfully.

Firefox update files are downloaded and stored in the following location.

Run the following PowerShell command:

Get-ChildItem -Path "C:\ProgramData\Mozilla-*" -Recurse | 
Select-Object @{ Name="Path"; Expression={$_.FullName} }, 
              @{ Name="Type"; Expression={ if ($_.PSIsContainer) { "Directory" } else { "File" } } }, 
              @{ Name="Size"; Expression={$_.Length} },
              @{ Name="LastModified"; Expression={$_.LastWriteTime} 
}

This helps verify whether update files were downloaded and identify incomplete or stalled files.

These fine people helped write this article:

Illustration of hands

Volunteer

Grow and share your expertise with others. Answer questions and improve our knowledge base.

Learn More