{"record":{"id":"ef3dcd0201c6ec8b","repo":"SeleniumHQ/selenium","slug":"browser-path-does-not-exist","errorCode":null,"errorMessage":"Browser path does not exist: {}","messagePattern":"Browser path does not exist: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"rust/src/lib.rs","lineNumber":1254,"sourceCode":"        }\n\n        Ok(Some(browser_version))\n    }\n\n    fn general_discover_browser_version(\n        &mut self,\n        reg_key: &'static str,\n        reg_version_arg: &'static str,\n        cmd_version_arg: &str,\n    ) -> Result<Option<String>, Error> {\n        let mut browser_path = self.get_browser_path().to_string();\n        if browser_path.is_empty() {\n            if let Some(path) = self.detect_browser_path() {\n                browser_path = path_to_string(&path);\n            }\n        } else if !Path::new(&browser_path).exists() {\n            self.set_fallback_driver_from_cache(false);\n            return Err(anyhow!(format_one_arg(\n                \"Browser path does not exist: {}\",\n                &browser_path,\n            )));\n        }\n        let escaped_browser_path = self.get_escaped_path(browser_path.to_string());\n\n        let mut commands = Vec::new();\n        if WINDOWS.is(self.get_os()) {\n            if !escaped_browser_path.is_empty() && !self.is_webview2() {\n                return Ok(get_win_file_version(&escaped_browser_path));\n            }\n            if !self.is_browser_version_unstable() {\n                let reg_command = Command::new(\n                    \"REG\",\n                    vec![\n                        String::from(\"QUERY\"),\n                        reg_key.to_string(),\n                        String::from(\"/v\"),","sourceCodeStart":1236,"sourceCodeEnd":1272,"githubUrl":"https://github.com/SeleniumHQ/selenium/blob/aa36b38e696a0909e973bdf5e2f9031ffe842c4b/rust/src/lib.rs#L1236-L1272","documentation":"Thrown in general_discover_browser_version() when an explicit browser path was configured (non-empty) but does not exist on disk. Selenium Manager first calls set_fallback_driver_from_cache(false), then returns the error. The placeholder is the configured path.","triggerScenarios":"get_browser_path() returns a non-empty string and Path::new(&browser_path).exists() is false (lib.rs:1252), e.g. when --browser-path points to a missing file.","commonSituations":"Typo in the path; the browser was uninstalled or moved; a path valid on the dev machine but wrong inside a container; Windows path quoting issues; relative path resolved against an unexpected cwd.","solutions":["Verify the path with ls/Get-Item and copy the absolute path.","Leave --browser-path unset so Selenium Manager auto-detects the browser.","On Windows, use double backslashes or forward slashes and quote paths containing spaces.","Ensure the browser binary is actually installed at that location in the runtime environment (e.g. the Docker image)."],"exampleFix":"# before\nselenium-manager --browser chrome --browser-path /usr/bim/google-chrome   # typo\n# after\nselenium-manager --browser chrome --browser-path /usr/bin/google-chrome","handlingStrategy":"validation","validationCode":"use std::path::Path;\nlet browser_path = config.browser_path();\nif !browser_path.is_empty() && !Path::new(&browser_path).exists() {\n    return Err(anyhow!(\"configured browser path missing: {browser_path}\"));\n}\nmanager.discover_browser_version()","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use absolute paths for --browser-path.","Leave --browser-path unset to rely on auto-detection.","Validate the path exists inside the same environment where Selenium Manager runs (e.g. the container)."],"tags":["browser-path","configuration","selenium-manager"],"backgroundTag":null,"analyzedSha":"aa36b38e696a0909e973bdf5e2f9031ffe842c4b","analyzedAt":"2026-08-14T02:32:32.244Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}