SeleniumHQ/selenium · error · anyhow::Error

Linux arm64 is not supported yet by Microsoft Edge. Please t

Error message

Linux arm64 is not supported yet by Microsoft Edge. Please try another browser.

What it means

Hard-failure in EdgeManager::get_driver_url() (driver-URL builder) when OS is Linux and architecture is ARM64. Microsoft does not publish an edgedriver build for Linux arm64, so Selenium Manager refuses to build a download URL. The message is Edge-specific and suggests an alternative browser.

Source

Thrown at rust/src/edge.rs:324

        Ok(None)
    }

    fn get_driver_url(&mut self) -> Result<String, Error> {
        let driver_version = self.get_driver_version();
        let os = self.get_os();
        let arch = self.get_arch();
        let driver_label = if WINDOWS.is(os) {
            if ARM64.is(arch) {
                "arm64"
            } else if X32.is(arch) {
                "win32"
            } else {
                "win64"
            }
        } else if MACOS.is(os) {
            if ARM64.is(arch) { "mac64_m1" } else { "mac64" }
        } else if LINUX.is(os) && ARM64.is(arch) {
            return Err(anyhow!(
                "Linux arm64 is not supported yet by Microsoft Edge. Please try another browser."
            ));
        } else {
            "linux64"
        };
        Ok(format!(
            "{}{}/edgedriver_{}.zip",
            self.get_driver_mirror_url_or_default(DRIVER_URL),
            driver_version,
            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,
            self.get_os(),

View on GitHub (pinned to aa36b38e69)

Solutions

  1. Run on x86_64 Linux, Windows, or macOS where edgedriver builds exist.
  2. Switch to Chrome or Firefox which have broader arm64 coverage.
  3. Provide edgedriver manually via --driver-path if you have an arm64-compatible build.
  4. Verify the detected architecture is correct (check SE_ARCH / os detection).
Defensive patterns

Strategy: validation

Validate before calling

# Bash: guard against arm64 Linux before Selenium Manager builds Edge driver URL
if [ "$(uname -s)" = "Linux" ] && [ "$(uname -m)" = "aarch64" ]; then
  echo "edgedriver unavailable on Linux arm64"; exit 1
fi

Try / catch

match edge_manager.get_driver_url() {
    Ok(u) => u,
    Err(e) if e.to_string().contains("Linux arm64 is not supported yet by Microsoft Edge") => {
        eprintln!("Run Edge on x86_64 Linux, Windows, or macOS");
        std::process::exit(1);
    }
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: Selenium Manager on Linux ARM64 attempts to construct the edgedriver_<version>_<label>.zip URL. The LINUX.is(os) && ARM64.is(arch) guard at line 323 trips; there is no linux_arm64 label branch, only linux64.

Common situations: arm64 Linux CI (Graviton, Apple-Silicon Linux VMs); embedded arm64 boards where Microsoft Edge is unavailable; misdetected arch reporting aarch64 on a Linux host.

Related errors


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