browsh-org/browsh · error
Installed Firefox version is too old. Firefox 57 or newer i
Error message
Installed Firefox version is too old. Firefox 57 or newer is needed.
What it means
Windows counterpart of the unix version check: `ensureFirefoxVersion` gets a version string via the registry (`getWindowsFirefoxVersionString`), takes the first whitespace token, and compares ordinally against 57. Firefox older than 57 lacks the WebExtension APIs browsh needs, so it shuts down. An empty parsed token (registry lookup returned nothing useful) also yields the 'version is too old' message with a double space.
Source
Thrown at interfacer/src/browsh/firefox_windows.go:106
flavor = "Nightly"
}
defer k.Close()
}
if flavor == "null" {
Shutdown(errors.New("Could not find Firefox on your registry"))
}
return flavor
}
func ensureFirefoxVersion(path string) {
versionString := getWindowsFirefoxVersionString()
pieces := strings.Split(versionString, " ")
version := pieces[0]
if versionOrdinal(version) < versionOrdinal("57") {
message := "Installed Firefox version " + version + " is too old. " +
"Firefox 57 or newer is needed."
Shutdown(errors.New(message))
}
}
View on GitHub (pinned to 499ef386d4)
Solutions
- Upgrade the installed Firefox to 57+ via the built-in updater or a fresh installer from mozilla.org.
- If the version string is empty, check the registry version keys under `SOFTWARE\Mozilla\Mozilla Firefox` and repair/reinstall Firefox so version info is populated.
- Remove or upgrade old Firefox ESR builds that the registry points to.
- Verify the 'Main' version value under the Firefox registry key matches the actually installed binary.
Example fix
# before Registry 'Mozilla Firefox' Main version = 52.9.0 -> too old // after: upgrade Firefox, then verify > reg query "HKLM\SOFTWARE\Mozilla\Mozilla Firefox" /v CurrentVersion # installed version must be >= 57
Defensive patterns
Strategy: validation
Validate before calling
const { execSync } = require('child_process');
const v = execSync('reg query "HKLM\\SOFTWARE\\Mozilla\\Mozilla Firefox" /v CurrentVersion').toString();
const major = parseInt(v.match(/\d+/)[0], 10);
if (!(major >= 57)) throw new Error(`Registered Firefox ${major} too old; need 57+`); Try / catch
try {
startBrowsh();
} catch (e) {
if (/is too old/.test(e.message)) {
console.error('Upgrade the registered Firefox install to 57+');
} else { throw e; }
} Prevention
- Keep Windows Firefox updated (enable automatic updates).
- Check the registry version value during environment preflight.
- Remove stale old-ESR installs the registry may resolve to.
- If the message shows an empty version, repair/reinstall Firefox so registry version data exists.
When it happens
Trigger: `getWindowsFirefoxVersionString` returns a string whose first token's ordinal < 57 (old Firefox), or an empty/unexpected string so `pieces[0]` is empty and fails the comparison.
Common situations: Old pre-Quantum Firefox installs; registry version value missing so parsing yields an empty version; multiple Firefoxes installed and the registry-resolved one is outdated; corporate machines pinning old Firefox ESR.
Related errors
- Installed Firefox version is too old. Firefox 57 or newer i
- Could not find Firefox on your registry
- A headless Firefox is already running
- Firefox binary not found:
- There appears to already be an existing Web Extension connec
AI-assisted analysis of browsh-org/browsh@499ef386d4 (2026-09-02).
Data as JSON: /api/errors/7da6be279d025aa5.
Report an issue: GitHub.