{"record":{"id":"7c36ce948a6cafaa","repo":"SeleniumHQ/selenium","slug":"not-available-for-download","errorCode":null,"errorMessage":"{}{} not available for download","messagePattern":"(.+?)(.+?) not available for download","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"rust/src/lib.rs","lineNumber":1367,"sourceCode":"    where\n        Self: Sized,\n    {\n        let browser_version = self.get_browser_version();\n        let browser_version_label = if browser_version.is_empty() {\n            \"\".to_string()\n        } else {\n            format!(\" {}\", browser_version)\n        };\n        let mut message = format_two_args(\n            error_message,\n            self.get_browser_name(),\n            &browser_version_label,\n        );\n        let versions_url = self.get_browser_versions_url();\n        if !versions_url.is_empty() {\n            message = format!(\"{}. Check available versions at {}\", message, versions_url);\n        }\n        Err(anyhow!(message))\n    }\n\n    // ----------------------------------------------------------\n    // Getters and setters for configuration parameters\n    // ----------------------------------------------------------\n\n    fn get_os(&self) -> &str {\n        self.get_config().os.as_str()\n    }\n\n    fn set_os(&mut self, os: String) {\n        if !os.is_empty() {\n            self.get_config_mut().os = os;\n        }\n    }\n\n    fn get_arch(&self) -> &str {\n        self.get_config().arch.as_str()","sourceCodeStart":1349,"sourceCodeEnd":1385,"githubUrl":"https://github.com/SeleniumHQ/selenium/blob/aa36b38e696a0909e973bdf5e2f9031ffe842c4b/rust/src/lib.rs#L1349-L1385","documentation":"Produced by throw_error_message() with the UNAVAILABLE_DOWNLOAD_ERR_MSG constant (\"{}{} not available for download\"). Placeholder one is the browser name, placeholder two the version label; the versions URL is appended. Raised via unavailable_download() (lib.rs:1338) when the requested driver/browser version has no downloadable artifact.","triggerScenarios":"unavailable_download() is invoked when the download step cannot find an artifact for the resolved browser+version, and the versions URL is appended to the message by throw_error_message.","commonSituations":"A version that exists in discovery metadata but has no downloadable binary for the platform; arch mismatch (e.g. requesting a build that lacks an ARM64 artifact); version withdrawn from the CDN.","solutions":["Check the appended versions URL and select a version with an artifact for your OS/arch.","Switch to the latest version (omit the pin) which is always mirrored.","Verify the OS and architecture Selenium Manager detected (use --os / --arch explicitly if misdetect)."],"exampleFix":"# before\nselenium-manager --browser edge --browser-version 117 --os mac --arch arm64  # no artifact\n# after\nselenium-manager --browser edge --browser-version 118 --os mac --arch arm64","handlingStrategy":"validation","validationCode":"// Confirm a downloadable artifact exists for the (version, os, arch) tuple\nlet artifacts = list_downloadable_artifacts(browser, &version, os, arch)?;\nif artifacts.is_empty() {\n    return Err(anyhow!(\"no downloadable artifact for {browser} {version} on {os}/{arch}\"));\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use the latest version (omit the pin) which always has artifacts.","Ensure the detected --os and --arch match a published artifact.","Keep a known-good version pinned in config that you have verified is downloadable."],"tags":["download","online-repository","selenium-manager"],"backgroundTag":null,"analyzedSha":"aa36b38e696a0909e973bdf5e2f9031ffe842c4b","analyzedAt":"2026-08-14T02:32:32.244Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}