SeleniumHQ/selenium · error · anyhow::Error

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

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.

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)

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.