Recommended Free Tools
Upgrade Cypress one major version at a time: move from Cypress 13 to 14 first, then from 14 to 15. If you are already on 14, check Cypress 15’s runtime and browser requirements, apply the migration changes that affect your project, then verify the installation and run your tests.
Before you upgrade
Confirm the Cypress version your project actually installs, rather than relying only on a package declaration or assumptions about the lockfile. Cypress’s migration guide recommends checking the starting version, updating the dependency with your package manager, applying relevant breaking-change fixes, then running npx cypress verify and the project tests. A successful migration command does not guarantee that application-specific tests will pass.
As an Amazon Associate I earn from qualifying purchases.
The Cypress migration guide now includes a Cypress 16 section, so Cypress 15 is not the newest major version covered there. The steps below target Cypress 15 as requested.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Check Node.js and Linux requirements
- Cypress 15 requires Node.js 20, 22, 24, or later to install the Cypress binary. Node.js 18 and 23 are no longer supported.
- On Linux, prebuilt Cypress binaries require glibc 2.31 or newer.
Check the Node.js version used by your local shell and by CI; those environments can differ. For Linux CI, confirm the base image provides the required glibc version.
Check Firefox against your intended Cypress 15 release
- Cypress 15.0.0 through 15.18.1 requires Firefox 135 or later.
- Cypress 15.19.0 and later requires Firefox 140 or later.
If your tests use Firefox, check the exact Cypress 15 version you plan to install and update any pinned ESR, CI image, or provider-installed browser that falls below its minimum.
Upgrade from Cypress 13 to 14, then to 15
- Confirm the installed version. Run
npx cypress versionfrom the project directory and note the installed Cypress major version. - Move from 13 to 14 if needed. Update the Cypress dependency to the latest version in the 14.x major using your package manager, then install dependencies and follow the Cypress 13-to-14 migration guidance for changes that apply to your project.
- Verify and test on 14. Run
npx cypress verify, then run the project’s Cypress tests. Resolve migration failures before proceeding. - Move from 14 to 15. Update the dependency to the Cypress 15 version you intend to use, install dependencies, and apply the Cypress 15 changes below where relevant.
- Verify and test on 15. Run
npx cypress verifyand your normal test commands, including relevant component-testing and browser jobs.
Use the package manager already used by the project so the manifest and lockfile remain consistent. For example, with npm, update the dependency to the desired major using npm install --save-dev cypress@^14 for the first move and npm install --save-dev cypress@^15 for the second. Review the resulting lockfile changes and commit them with the upgrade.
Apply Cypress 15 code and configuration changes
Read the exec result from exitCode
Change code that reads cy.exec(...).its('code') to read cy.exec(...).its('exitCode'). Search test support files and specs for the old property access, then update affected assertions or command chains.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsPass stub implementations with callsFake
Replace the old three-argument form cy.stub(object, name, fn) with a stub followed by callsFake:
cy.stub(object, 'method').callsFake(fn)
Check custom test helpers as well as specs so the old signature is not hidden in a shared utility.
Check component-testing tool versions
Cypress 15 drops component-testing support for Webpack 4, Vite 4, and Angular 17. The corresponding minimums are Webpack 5, Vite 5, and Angular 18. If your component tests use one of the older versions, upgrade the relevant tooling and verify the component-test configuration before relying on Cypress 15.
Rank #4
Convert Vite dev-server configuration to ESM where necessary
@cypress/vite-dev-server is ESM-only. If a CommonJS Cypress configuration loads this package, convert the configuration to an ESM context—for example, use a .mjs configuration file—and update its module syntax and imports accordingly. Confirm the Cypress config loads in both local and CI runs.
Verify the upgrade and troubleshoot failures
Installation or binary verification fails
- Cause: The Node.js version is unsupported, or on Linux the system glibc is below 2.31.
- Fix: Use Node.js 20, 22, 24, or later and a Linux environment with glibc 2.31 or newer, then reinstall or verify Cypress again.
Firefox tests cannot start
- Cause: The Firefox version is below the minimum for the chosen Cypress 15 minor release.
- Fix: For Cypress 15.0.0–15.18.1, use Firefox 135 or later; for 15.19.0 and later, use Firefox 140 or later. Update pinned CI or provider browsers where needed.
Component tests fail during setup
- Cause: The project still uses Webpack 4, Vite 4, or Angular 17, or its Vite dev-server import is being loaded from CommonJS.
- Fix: Upgrade to Webpack 5, Vite 5, or Angular 18 as applicable, and move a configuration that uses the ESM-only Vite dev server into an ESM context.
Assertions or stubs fail after migration
- Cause: Code still reads
cy.exec(...).its('code')or usescy.stub(object, name, fn). - Fix: Use
exitCodefor the exec result andcy.stub(object, name).callsFake(fn)for the stub implementation.
Verification passes but tests fail
npx cypress verify checks the Cypress installation; it does not validate your application’s test behavior. Use the failing spec, browser, and CI logs to identify remaining project-specific incompatibilities, and run the affected test suite after each fix.
Best Value
Or skip the browser setup
If the goal is to capture website screenshots rather than run Cypress tests, ScreenshotNeo is a website screenshot API and MCP server for developers. Its one-call API returns a PNG, JPEG, WebP, or PDF. For example, this cURL request saves a WebP screenshot; see the API documentation for parameters and options.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
ScreenshotNeo accepts cookie and consent banners and removes more than 60 known consent platforms, newsletter popups, and chat widgets before capture; those steps can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are not billed, and responses identify the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000.
Sign up for ScreenshotNeo’s free plan to get 1,000 screenshots a month with no card.
Frequently Asked Questions
Can I jump directly from Cypress 13 to Cypress 15?
No. Complete the Cypress 13-to-14 migration and verify that version before moving from 14 to 15.
Is Cypress 15 the newest major version in the migration guide?
No. The guide also has a Cypress 16 section; this procedure is specifically for reaching Cypress 15.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Free tools Windows power users keep installed
One-click scans. No signup required.




