{"record":{"id":"7da6be279d025aa5","repo":"browsh-org/browsh","slug":"installed-firefox-version-is-too-old-firefox-57-7da6be","errorCode":null,"errorMessage":"Installed Firefox version  is too old. Firefox 57 or newer is needed.","messagePattern":"Installed Firefox version  is too old\\. Firefox 57 or newer is needed\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"interfacer/src/browsh/firefox_windows.go","lineNumber":106,"sourceCode":"\t\t\tflavor = \"Nightly\"\n\t\t}\n\t\tdefer k.Close()\n\t}\n\n\tif flavor == \"null\" {\n\t\tShutdown(errors.New(\"Could not find Firefox on your registry\"))\n\t}\n\treturn flavor\n}\n\nfunc ensureFirefoxVersion(path string) {\n\tversionString := getWindowsFirefoxVersionString()\n\tpieces := strings.Split(versionString, \" \")\n\tversion := pieces[0]\n\tif versionOrdinal(version) < versionOrdinal(\"57\") {\n\t\tmessage := \"Installed Firefox version \" + version + \" is too old. \" +\n\t\t\t\"Firefox 57 or newer is needed.\"\n\t\tShutdown(errors.New(message))\n\t}\n}\n","sourceCodeStart":88,"sourceCodeEnd":109,"githubUrl":"https://github.com/browsh-org/browsh/blob/499ef386d45cd1e2b5457dd04887c017f77b7e27/interfacer/src/browsh/firefox_windows.go#L88-L109","documentation":"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.","triggerScenarios":"`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.","commonSituations":"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.","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."],"exampleFix":"# before\nRegistry 'Mozilla Firefox' Main version = 52.9.0 -> too old\n// after: upgrade Firefox, then verify\n> reg query \"HKLM\\SOFTWARE\\Mozilla\\Mozilla Firefox\" /v CurrentVersion\n# installed version must be >= 57","handlingStrategy":"validation","validationCode":"const { execSync } = require('child_process');\nconst v = execSync('reg query \"HKLM\\\\SOFTWARE\\\\Mozilla\\\\Mozilla Firefox\" /v CurrentVersion').toString();\nconst major = parseInt(v.match(/\\d+/)[0], 10);\nif (!(major >= 57)) throw new Error(`Registered Firefox ${major} too old; need 57+`);","typeGuard":null,"tryCatchPattern":"try {\n  startBrowsh();\n} catch (e) {\n  if (/is too old/.test(e.message)) {\n    console.error('Upgrade the registered Firefox install to 57+');\n  } else { throw e; }\n}","preventionTips":["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."],"tags":["windows","firefox","version-check","compatibility"],"backgroundTag":"firefox-version-too-old","analyzedSha":"499ef386d45cd1e2b5457dd04887c017f77b7e27","analyzedAt":"2026-09-02T19:05:32.228Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-09T21:17:11.164Z"}