Situation
Using the install-browsers parameter of the job cypress/run causes a failure in the step "Install Chrome for Testing" which shows only limited log information regarding the failure:
^@^@
Exited with code exit status 9
This is an upstream issue with CircleCI-Public/browser-tools-orb#164
Version
cypress-io/cypress@6.0.0
Steps to reproduce
Set up the following config:
version: 2.1
orbs:
cypress: cypress-io/cypress@6 # https://circleci.com/developer/orbs/orb/cypress-io/cypress
workflows:
test-cypress:
jobs:
- cypress/run:
install-browsers: true
Note that if Chromium bumps the version of Chrome for Testing, the config may succeed again.
Assessment
The script https://github.com/CircleCI-Public/browser-tools-orb/blob/main/src/scripts/install_chrome_for_testing.sh takes the version of Chrome (Linux) from https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Linux and then uses it to try to download Chrome for Testing. For 146.0.7680.164 it downloads instead an error message, treats it as a zip file, and then fails.
Currently the result of this query results in
{
"channel": "Stable",
"chromium_main_branch_position": 1582197,
"hashes": {
"angle": "e05753c6d05b17b23d514038957469c70b75475c",
"chromium": "bbd8c5dd25fb2f569d98e626a9517cf2171abdff",
"dawn": "a655251a59c4af3fbf8058bb2572d6a457f896d2",
"devtools": "890a74027b0fdeaee6bbf0a0b9b108bbda7af5b9",
"pdfium": "bccc616f83aaed08f65d4a707dfe00e24133772b",
"skia": "6a75afe9792764f6faa76ad50125781899ca05e8",
"v8": "0e999a528db40a3ef6fa917adf96370a18b87d70",
"webrtc": "b2a90ac0037ee7187102ce2c40e5007216ca9a58"
},
"milestone": 146,
"platform": "Linux",
"previous_version": "146.0.7680.153",
"time": 1774293660703,
"version": "146.0.7680.164"
},
The binary for this version is however not available. Executing:
curl -I https://storage.googleapis.com/chrome-for-testing-public/146.0.7680.164/linux64/chrome-linux64.zip
shows HTTP/2 404 meaning that the binary does not exist, causing the installation failure.
Querying instead the official JSON API endpoint https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json would lead to pulling the following data:
"timestamp": "2026-03-27T19:22:28.034Z",
"channels": {
"Stable": {
"channel": "Stable",
"version": "147.0.7727.24",
"revision": "1596535",
"downloads": {
"chrome": [
{
"platform": "linux64",
"url": "https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.24/linux64/chrome-linux64.zip"
},
{
"platform": "mac-arm64",
"url": "https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.24/mac-arm64/chrome-mac-arm64.zip"
},
{
"platform": "mac-x64",
"url": "https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.24/mac-x64/chrome-mac-x64.zip"
},
{
"platform": "win32",
"url": "https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.24/win32/chrome-win32.zip"
},
{
"platform": "win64",
"url": "https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.24/win64/chrome-win64.zip"
}
],
and that would result in selecting an available binary.
Executing
curl -I https://storage.googleapis.com/chrome-for-testing-public/147.0.7727.24/linux64/chrome-linux64.zip
results in HTTP/2 200 showing that the file exists.
Recommendation
The enhancement to https://github.com/CircleCI-Public/browser-tools-orb/blob/main/src/scripts/install_chrome_for_testing.sh to allow it to select and install the latest Chrome for Testing version was a PR contribution from the Cypress.io team to the circleci/browser-tools Orb.
Work with the CircleCI team to improve the reliability of the https://github.com/CircleCI-Public/browser-tools-orb/blob/main/src/scripts/install_chrome_for_testing.sh script. Migrate to using the official JSON API endpoints to determine and download the corresponding Stable release of Chrome for Testing.
Pending
Situation
Using the
install-browsersparameter of the job cypress/run causes a failure in the step "Install Chrome for Testing" which shows only limited log information regarding the failure:This is an upstream issue with CircleCI-Public/browser-tools-orb#164
Version
cypress-io/cypress@6.0.0Steps to reproduce
Set up the following config:
Note that if Chromium bumps the version of Chrome for Testing, the config may succeed again.
Assessment
The script https://github.com/CircleCI-Public/browser-tools-orb/blob/main/src/scripts/install_chrome_for_testing.sh takes the version of Chrome (Linux) from https://chromiumdash.appspot.com/fetch_releases?channel=Stable&platform=Linux and then uses it to try to download Chrome for Testing. For
146.0.7680.164it downloads instead an error message, treats it as a zip file, and then fails.Currently the result of this query results in
{ "channel": "Stable", "chromium_main_branch_position": 1582197, "hashes": { "angle": "e05753c6d05b17b23d514038957469c70b75475c", "chromium": "bbd8c5dd25fb2f569d98e626a9517cf2171abdff", "dawn": "a655251a59c4af3fbf8058bb2572d6a457f896d2", "devtools": "890a74027b0fdeaee6bbf0a0b9b108bbda7af5b9", "pdfium": "bccc616f83aaed08f65d4a707dfe00e24133772b", "skia": "6a75afe9792764f6faa76ad50125781899ca05e8", "v8": "0e999a528db40a3ef6fa917adf96370a18b87d70", "webrtc": "b2a90ac0037ee7187102ce2c40e5007216ca9a58" }, "milestone": 146, "platform": "Linux", "previous_version": "146.0.7680.153", "time": 1774293660703, "version": "146.0.7680.164" },The binary for this version is however not available. Executing:
shows
HTTP/2 404meaning that the binary does not exist, causing the installation failure.Querying instead the official JSON API endpoint https://googlechromelabs.github.io/chrome-for-testing/last-known-good-versions-with-downloads.json would lead to pulling the following data:
and that would result in selecting an available binary.
Executing
results in
HTTP/2 200showing that the file exists.Recommendation
The enhancement to https://github.com/CircleCI-Public/browser-tools-orb/blob/main/src/scripts/install_chrome_for_testing.sh to allow it to select and install the latest Chrome for Testing version was a PR contribution from the Cypress.io team to the circleci/browser-tools Orb.
Work with the CircleCI team to improve the reliability of the https://github.com/CircleCI-Public/browser-tools-orb/blob/main/src/scripts/install_chrome_for_testing.sh script. Migrate to using the official JSON API endpoints to determine and download the corresponding
Stablerelease of Chrome for Testing.Pending