Cypress "The Cypress App could not be downloaded" in CI
Cypress downloads a separate binary after npm install, and that fetch failed. In CI the cause is usually a proxy or firewall blocking the download server, a timeout, or a mirror configured through CYPRESS_INSTALL_BINARY that is unreachable.
What this error means
The install fails with "The Cypress App could not be downloaded" and a URL, often with "Response code 403" or a connection error, before any spec runs.
The Cypress App could not be downloaded.
Please check network connectivity and try again:
https://download.cypress.io/desktop/13.9.0?platform=linux&arch=x64
----------
Response code 403 (Forbidden)Common causes
A proxy or firewall blocks the download server
The CI egress rules deny download.cypress.io, so the binary fetch returns 403 or times out.
A misconfigured internal mirror
CYPRESS_INSTALL_BINARY points at a mirror that is down, requires auth, or serves the wrong version.
How to fix it
Point Cypress at an approved mirror or proxy
Set the binary URL to an allowed host, or route the download through the CI proxy.
env:
CYPRESS_INSTALL_BINARY: https://mirror.internal.example.com/cypress/13.9.0.zip
HTTPS_PROXY: http://proxy.internal.example.com:8080Cache the binary so downloads are rare
Persist the Cypress cache folder across runs so a blocked or slow download is not on the path every time.
- uses: actions/cache@v4
with:
path: ~/.cache/Cypress
key: cypress-${{ hashFiles('package-lock.json') }}How to prevent it
- Allowlist
download.cypress.io(or a mirror) in CI egress rules. - Cache
~/.cache/Cypresskeyed on the lockfile. - Keep
CYPRESS_INSTALL_BINARYpointed at a version that exists on the mirror.