SeleniumHQ/selenium · error · anyhow::Error

{} {} not available for download on {} (minimum version: {})

Error message

{} {} not available for download on {} (minimum version: {}). Check available versions at {}

What it means

Returned by ChromeManager::request_good_driver_version_from_online() when the Chrome-for-Testing (CfT) GOOD_VERSIONS_ENDPOINT is queried and filtered by the requested driver major/version prefix, but zero entries remain. The formatted message reads '<driver> <version> not available for download on <arch> (minimum version: 115)' because chromedriver CfT coverage only exists from version 115 onward (MIN_CHROMEDRIVER_VERSION_CFT).

Source

Thrown at rust/src/chrome.rs:212

            } else {
                self.get_driver_version()
            };
            self.get_major_version(browser_or_driver_version)?
        };
        self.log.trace(format!(
            "Driver version used to request CfT: {version_for_filtering}"
        ));

        let good_versions_url = self.create_cft_url_for_drivers(GOOD_VERSIONS_ENDPOINT);
        let all_versions =
            self.request_versions_from_online::<VersionsWithDownloads>(&good_versions_url)?;
        let filtered_versions: Vec<Version> = all_versions
            .versions
            .into_iter()
            .filter(|r| r.version.starts_with(version_for_filtering.as_str()))
            .collect();
        if filtered_versions.is_empty() {
            return Err(anyhow!(format!(
                "{}. Check available versions at {}",
                format_four_args(
                    UNAVAILABLE_DOWNLOAD_WITH_MIN_VERSION_ERR_MSG,
                    self.get_driver_name(),
                    version_for_filtering.as_str(),
                    self.get_arch(),
                    &MIN_CHROMEDRIVER_VERSION_CFT.to_string(),
                ),
                CFT_URL
            )));
        }

        let driver_version = filtered_versions.last().unwrap();
        let url: Vec<&PlatformUrl> = driver_version
            .downloads
            .chromedriver
            .as_ref()
            .unwrap()

View on GitHub (pinned to aa36b38e69)

Solutions

  1. Ensure the requested chromedriver version is >= 115, which is the first version with CfT hosting.
  2. Drop the explicit --driver-version and let Selenium Manager auto-discover the matching one.
  3. Check https://googlechromelabs.github.io/chrome-for-testing/ for the actual available versions for your platform.
  4. If using a mirror, confirm the mirror URL (driver mirror env/config) actually serves that version.

Example fix

# before (Selenium Manager invoked with old driver)
selenium-manager --browser chrome --driver-version 114

# after
selenium-manager --browser chrome
Defensive patterns

Strategy: validation

Validate before calling

# Bash: verify a chromedriver version exists in CfT before requesting it
VERSION="115"
curl -s "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json" \
  | jq -e --arg v "$VERSION" '.versions[] | select(.version | startswith($v))' > /dev/null \
  && echo "OK" || echo "not found"

Try / catch

// Java/Selenium: catch the SeleniumManager exit and show guidance
try {
    driver = new ChromeDriver();
} catch (WebDriverException e) {
    if (e.getMessage().contains("not available for download")) {
        log.error("Requested chromedriver version unavailable via CfT (min 115). Let Selenium Manager auto-select.");
    }
    throw e;
}

Prevention

When it happens

Trigger: Selenium Manager resolves a chromedriver via CfT and version_for_filtering (a driver version or major number derived from browser version) matches no entry in the CfT versions JSON. Triggered when the user requests chromedriver < 115, a non-existent patch, or a version not yet published for their platform label.

Common situations: User pins --driver-version 114 (pre-CfT); a brand-new Chrome major whose driver isn't published yet; an arch/platform filter mismatch; a typo in the requested version.

Related errors


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