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
- Retry after a delay — Chrome-for-Testing publishes platform artifacts in waves, linux64 may appear within hours.
- Manually check https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json to verify linux64 chromedriver exists for the target milestone.
- If the schema changed, update the platform filter or JSON key path in pinned_browsers.py.
- 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
- Verify the Chrome-for-Testing JSON payload has linux64 artifacts before running the script.
- Run the script after a milestone has fully propagated to all platforms.
- Handle transient missing-platform cases by retrying later.
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
- No chromedriver download found for platform 'mac-arm64'
- No Chrome download found for platform 'linux64'
- Download unavailable (HTTP {r.status}): {url}
- No Chrome download found for platform 'mac-arm64'
- Failed to list {CDDL_PATH} at {commit}: HTTP {r.status}
AI-assisted analysis of SeleniumHQ/selenium@aa36b38e69 (2026-08-14).
Data as JSON: /api/errors/ca1af733e8298d0b.
Report an issue: GitHub.