SeleniumHQ/selenium · error · anyhow::Error

Linux arm64 is not supported yet by Google Chrome. Please…

Error message

Linux arm64 is not supported yet by Google Chrome. Please try another browser.

What it means

Hard-failure in ChromeManager::get_driver_url() (the legacy URL-construction path) when the detected OS is Linux and the architecture is ARM64. Google does not publish a chromedriver build for Linux ARM64, so Selenium Manager refuses to fabricate a download URL. The message directs the user to a different browser.

Solutions

  1. Switch the test target to an x86_64 Linux environment where chromedriver linux64 builds exist.
  2. Use a Chromium/Chrome build that ships for arm64 and a compatible chromedriver via an external driver path (--driver-path).
  3. Run on macOS ARM64 (M-series), where mac_arm64 chromedriver builds are available.
  4. Use Firefox (geckodriver has arm64 support) as the browser instead.
Defensive patterns

Strategy: validation

Validate before calling

# Bash: detect arm64 Linux before invoking Selenium Manager for Chrome
if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "aarch64" ]; then
  echo "Chrome/chromedriver unavailable on Linux arm64; use Firefox"; exit 1
fi

Try / catch

match selenium_manager.run() {
    Ok(path) => path,
    Err(e) if e.to_string().contains("Linux arm64 is not supported yet by Google Chrome") => {
        eprintln!("Switch to a supported platform or use Firefox on arm64 Linux");
        std::process::exit(1);
    }
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: Selenium Manager runs on Linux aarch64/arm64 and falls into the driver-URL builder that has no linux_arm64 branch (only linux64). The LINUX.is(os) && ARM64.is(arch) guard at line 422 trips before any network call.

Common situations: Running tests inside an arm64 Docker container (e.g. Apple Silicon-hosted Linux VMs, AWS Graviton); CI on ARM64 Linux workers expecting Chrome; Raspberry Pi clusters.

Related errors


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

Appendix: source

Thrown at rust/src/chrome.rs:423

        let driver_version = self.get_driver_version();
        let os = self.get_os();
        let arch = self.get_arch();
        let driver_label = if WINDOWS.is(os) {
            "win32"
        } else if MACOS.is(os) {
            if ARM64.is(arch) {
                // As of chromedriver 106, the naming convention for macOS ARM64 releases changed. See:
                // https://groups.google.com/g/chromedriver-users/c/JRuQzH3qr2c
                if major_driver_version < 106 {
                    "mac64_m1"
                } else {
                    "mac_arm64"
                }
            } else {
                "mac64"
            }
        } else if LINUX.is(os) && ARM64.is(arch) {
            return Err(anyhow!(
                "Linux arm64 is not supported yet by Google Chrome. Please try another browser."
            ));
        } else {
            "linux64"
        };
        Ok(format!(
            "{}{}/{}_{}.zip",
            self.get_driver_mirror_url_or_default(DRIVER_URL),
            driver_version,
            self.driver_name,
            driver_label
        ))
    }

    fn get_driver_path_in_cache(&self) -> Result<PathBuf, Error> {
        Ok(compose_driver_path_in_cache(
            self.get_cache_path()?.unwrap_or_default(),
            self.driver_name,

View on GitHub (pinned to aa36b38e69)