SeleniumHQ/selenium · error · ValueError

No chromedriver download found for platform 'linux64'

Error message

No chromedriver download found for platform 'linux64'

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 'linux64'. The function iterates selected_version['downloads']['chromedriver'] looking for d['platform'] == 'linux64'. If none matches, url is None and ValueError is raised. This means the Chrome-for-Testing JSON payload did not include a linux64 chromedriver artifact.

Source

Thrown at scripts/pinned_browsers.py:57

        "GET",
        "https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json",
    )
    versions = json.loads(r.data)["versions"]

    return sorted(
        filter(lambda v: v["version"].split(".")[0] == str(milestone), versions),
        key=lambda v: parse(v["version"]),
    )[-1]


def chromedriver(selected_version, workspace_prefix=""):
    content = ""

    drivers = selected_version["downloads"]["chromedriver"]

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

    content += f"""    http_archive(
        name = "linux_{workspace_prefix}chromedriver",
        url = "{url}",
        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"],
)
\"\"\",

View on GitHub (pinned to aa36b38e69)

Solutions

  1. Retry after a delay — Chrome-for-Testing publishes platform artifacts in waves, linux64 may appear within hours.
  2. Manually check https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json to verify linux64 chromedriver exists for the target milestone.
  3. If the schema changed, update the platform filter or JSON key path in pinned_browsers.py.
  4. Pin to a known-good version by editing the script's version selection logic.

Example fix

null
Defensive patterns

Strategy: validation

Validate before calling

# Before calling chromedriver(), verify the platform exists in the JSON
drivers = selected_version['downloads']['chromedriver']
platforms = [d['platform'] for d in drivers]
if 'linux64' not in platforms:
    print(f'linux64 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 yet published a linux64 chromedriver for the latest stable/beta milestone; the JSON schema from googlechromelabs.github.io changed or omitted linux64; the milestone filter selected a version that predates linux64 chromedriver availability.

Common situations: Chrome-for-Testing endpoint in flux during a new milestone rollout (linux64 artifact published slightly later than other platforms); API response format changed; beta channel milestone has incomplete artifacts; CI runs during a release window.

Related errors


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