SeleniumHQ/selenium · error · anyhow::Error

{}{} not available for download

Error message

{}{} not available for download

What it means

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.

Source

Thrown at rust/src/lib.rs:1367

    where
        Self: Sized,
    {
        let browser_version = self.get_browser_version();
        let browser_version_label = if browser_version.is_empty() {
            "".to_string()
        } else {
            format!(" {}", browser_version)
        };
        let mut message = format_two_args(
            error_message,
            self.get_browser_name(),
            &browser_version_label,
        );
        let versions_url = self.get_browser_versions_url();
        if !versions_url.is_empty() {
            message = format!("{}. Check available versions at {}", message, versions_url);
        }
        Err(anyhow!(message))
    }

    // ----------------------------------------------------------
    // Getters and setters for configuration parameters
    // ----------------------------------------------------------

    fn get_os(&self) -> &str {
        self.get_config().os.as_str()
    }

    fn set_os(&mut self, os: String) {
        if !os.is_empty() {
            self.get_config_mut().os = os;
        }
    }

    fn get_arch(&self) -> &str {
        self.get_config().arch.as_str()

View on GitHub (pinned to aa36b38e69)

Solutions

  1. Check the appended versions URL and select a version with an artifact for your OS/arch.
  2. Switch to the latest version (omit the pin) which is always mirrored.
  3. Verify the OS and architecture Selenium Manager detected (use --os / --arch explicitly if misdetect).

Example fix

# before
selenium-manager --browser edge --browser-version 117 --os mac --arch arm64  # no artifact
# after
selenium-manager --browser edge --browser-version 118 --os mac --arch arm64
Defensive patterns

Strategy: validation

Validate before calling

// Confirm a downloadable artifact exists for the (version, os, arch) tuple
let artifacts = list_downloadable_artifacts(browser, &version, os, arch)?;
if artifacts.is_empty() {
    return Err(anyhow!("no downloadable artifact for {browser} {version} on {os}/{arch}"));
}

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of SeleniumHQ/selenium@aa36b38e69 (2026-08-14). Data as JSON: /api/errors/7c36ce948a6cafaa. Report an issue: GitHub.