SeleniumHQ/selenium · error · ValueError

No chromedriver download found for platform 'mac-arm64'

Error message

No chromedriver download found for platform 'mac-arm64'

What it means

Raised by the chromedriver() function in pinned_browsers.py when the selected Chrome version's downloads JSON contains no 'chromedriver' entry with platform 'mac-arm64'. Same pattern as the linux64 check: it searches for d['platform'] == 'mac-arm64' and raises if no match is found.

Source

Thrown at scripts/pinned_browsers.py:81

        sha256 = "{sha}",
        strip_prefix = "chromedriver-linux64",
        build_file_content = \"\"\"
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

exports_files(["chromedriver"])

js_library(
    name = "chromedriver-js",
    data = ["chromedriver"],
)
\"\"\",
    )
"""

    url = next((d["url"] for d in drivers if d["platform"] == "mac-arm64"), None)
    if url is None:
        raise ValueError("No chromedriver download found for platform 'mac-arm64'")
    sha = calculate_hash(url)

    content += f"""
    http_archive(
        name = "mac_{workspace_prefix}chromedriver",
        url = "{url}",
        sha256 = "{sha}",
        strip_prefix = "chromedriver-mac-arm64",
        build_file_content = \"\"\"
load("@aspect_rules_js//js:defs.bzl", "js_library")
package(default_visibility = ["//visibility:public"])

exports_files(["chromedriver"])

js_library(
    name = "chromedriver-js",
    data = ["chromedriver"],
)

View on GitHub (pinned to aa36b38e69)

Solutions

  1. Retry after a delay — mac-arm64 may be published shortly after other platforms.
  2. Manually verify the JSON payload at googlechromelabs.github.io to confirm the platform key name.
  3. If the platform identifier changed upstream, update the filter in pinned_browsers.py.
  4. Pin to a version known to have mac-arm64 artifacts.

Example fix

null
Defensive patterns

Strategy: validation

Validate before calling

drivers = selected_version['downloads']['chromedriver']
platforms = [d['platform'] for d in drivers]
if 'mac-arm64' not in platforms:
    print(f'mac-arm64 not in available platforms: {platforms}')

Type guard

null

Try / catch

null

Prevention

When it happens

Trigger: Running pinned_browsers.py when Chrome-for-Testing has not published a mac-arm64 chromedriver for the selected milestone; the platform naming changed (e.g., from 'mac-arm64' to a different identifier); the milestone predates Apple Silicon support.

Common situations: Chrome-for-Testing mid-release where mac-arm64 is not yet available; schema/platform name change in the upstream JSON; CI running during a milestone transition window.

Related errors


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