Skip to content

cypress/run job with install-browsers parameter fails #571

Description

@MikeMcC399

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
Image



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

Metadata

Metadata

Assignees

Labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions