Cypress v6.0.0stable Released Nov 24, 2020
⚠️ Breaking Change Impact Score: 7/10

Cypress v6.0.0 β€” Release Notes & Engineering Impact

Source available β€” automated, not human-reviewed

Component: cypress Β· Channel: stable. Automated analysis, not a compatibility certification. How this works.

Analysis updated: 2026-11-01.

Breaking-change evidence from the source

  • Breaking Changes:** **Please read our [Migration Guide](https://on.cypress.io/migration-guide) which explains the changes in more detail and how to change your code to migrate to Cypress 6.0.**
Read the original context β†—
Source flags breaking changes β€” review applicability
πŸ“„ .MD
⚑ Executive Summary (TL;DR)

Cypress v6.0.0. Source highlight: *Released 11/23/2020*

Who Does This Impact? (Role-Based Analysis)

πŸ’» Software Engineers & Devs

Check the source notes against the package and APIs you use before upgrading.

πŸ“Š Product & Engineering Leads

Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.

βš™οΈ DevOps & Security

Verify the target version, runtime requirements and rollback procedure in the official documentation.

⚠️ Breaking Changes & Deprecations (1)

  • Breaking Changes:** **Please read our [Migration Guide](https://on.cypress.io/migration-guide) which explains the changes in more detail and how to change your code to migrate to Cypress 6.0.**

✨ New Features & Capabilities (1)

  • Added the type of `redirects` and changed `redirectedToUrl` optional for Response types. Addresses #9275.

⚑ Performance & Enhancements (1)

  • DOM elements where the CSS style (or ancestors) are `opacity: 0` are no longer considered visible. However these are still considered actionable and "any action commands" interacting-with-elements#Actionability used to interact with the element will perform the action. This matches browser's implementation on how they regard elements with `opacity: 0`. Addresses #4474.

πŸ”§ Bug Fixes & Patches (4)

  • We fixed a regression introduced in 3.5.0 that would cause `.type()` to not type the entire string when focus was called away from the target element. Fixes #9254.
  • `.type()` and `.click()` now properly work on elements inside a `contenteditable` element. Fixes #2717 and #7721.
  • We fixed a regression introduced in 5.6.0 that would cause the Test Runner to crashes and display a white page when switching tabs while tests are running. Fixes #9151.
  • Fixed an issue where `Content-Length` for `cy.route2` request bodies could be incorrectly recalculated. Fixes #9166.
πŸ“„ View Raw Release Notes (Original Developer Log)
*Released 11/23/2020* **Summary:** Cypress now offers full network stubbing support with the introduction of the [`cy.intercept()`](https://on.cypress.io/intercept) command (previously `cy.route2()`). With [`cy.intercept()`](https://on.cypress.io/intercept) your tests can intercept, modify and wait on any type of HTTP request originating from your app. **Breaking Changes:** **Please read our [Migration Guide](https://on.cypress.io/migration-guide) which explains the changes in more detail and how to change your code to migrate to Cypress 6.0.** - Cypress now always throws an error when asserting on an element that doesn't exist in the DOM (unless you're asserting that the element should `not.exist`). Assertions such as `not.visible`, `not.contains`, `not.have.class`, etc will now fail when used on non-existent DOM elements. Addresses [#205](https://github.com/cypress-io/cypress/issues/205). - DOM elements where the CSS style (or ancestors) are `opacity: 0` are no longer considered visible. However these are still considered [actionable](https://on.cypress.io/interacting-with-elements) and "any action commands" interacting-with-elements#Actionability used to interact with the element will perform the action. This matches browser's implementation on how they regard elements with `opacity: 0`. Addresses [#4474](https://github.com/cypress-io/cypress/issues/4474). - The type yielded by [`cy.wait(alias)`](https://on.cypress.io/wait) has changed in order to support use of [`cy.intercept()`](https://on.cypress.io/intercept). Addressed in [#9266](https://github.com/cypress-io/cypress/issues/9266). - The `experimentalNetworkStubbing` option has been removed and made the default behavior. You can safely removed this configuration option. Addressed in [#9185](https://github.com/cypress-io/cypress/issues/9185). - When using [`.type()`](https://on.cypress.io/type) and [`.click()`](https://on.cypress.io/click) on elements inside a `contenteditable` element, the events are now properly triggered on the inside elements. This may cause unintended consequences if you were relying on the previous behavior. Addressed in [#9066](https://github.com/cypress-io/cypress/issues/9066). - We removed several deprecation errors around APIs that were removed in versions of Cypress prior to 4.0.0. This will not cause any changes for anyone upgrading from a 4.0+ version of Cypress. For a full list of all APIs affected see [#8946](https://github.com/cypress-io/cypress/issues/8946). - We updated our HTTP status codes and reason phrases to match Node.js `http.STATUS_CODES`. If you have code that relies on a reason phrase, then this could affect you. Addressed in [#8969](https://github.com/cypress-io/cypress/issues/8969). - JSON request and response bodies captured by [`cy.intercept()`](https://on.cypress.io/intercept) are now automatically parsed, removing the need to manually do `JSON.parse`. Addressed in [#9280](https://github.com/cypress-io/cypress/issues/9280). **Deprecations:** Deprecations still work as before but will be removed from Cypress in a future release. We encourage you to update your code now to remove uses of deprecations. - `cy.server()` and `cy.route()` have been deprecated. In a future release, support for `cy.server()` and `cy.route()` will be moved to a plugin. We encourage you to use [`cy.intercept()`](https://on.cypress.io/intercept) instead. Addressed in [#9185](https://github.com/cypress-io/cypress/issues/9185). - `experimentalFetchPolyfill` has been deprecated. We encourage you to use [`cy.intercept()`](https://on.cypress.io/intercept) to intercept requests using the Fetch API instead. - `cy.route2()` was renamed to [`cy.intercept()`](https://on.cypress.io/intercept). We encourage you to update usages of `cy.route2()` to use [`cy.intercept()`](https://on.cypress.io/intercept). Addressed in [#9182](https://github.com/cypress-io/cypress/issues/9182). **Features:** - The new [`cy.intercept()`](https://on.cypress.io/intercept) command can be used to manage the behavior of HTTP requests at the network layer. Addressed in [#9182](https://github.com/cypress-io/cypress/issues/9182). - We now pass `β€”disable-dev-shm-usage` to the Chrome browser flags by default. This will write shared memory files into `/tmp` instead of `/dev/shm`. If you're passing this flag in your `plugins` file, you can now remove this code. Addresses [#5336](https://github.com/cypress-io/cypress/issues/5336). - A warning is now displayed when passing invalid configuration keys through the CLI. Addresses [#428](https://github.com/cypress-io/cypress/issues/428). - The `cypress version` command now also displays the current Electron and bundled Node versions. Addresses [#9180](https://github.com/cypress-io/cypress/issues/9180). - The `cypress version` command now accepts a `--component` flag that allows you to print the version of specific components of Cypress. ie Electron, Node, etc. Addresses [#9214](https://github.com/cypress-io/cypress/issues/9214). **Bugfixes:** - We fixed a regression introduced in [3.5.0](https://on.cypress.io/changelog#3-5-0) that would cause [`.type()`](https://on.cypress.io/type) to not type the entire string when focus was called away from the target element. Fixes [#9254](https://github.com/cypress-io/cypress/issues/9254). - [`.type()`](https://on.cypress.io/type) and [`.click()`](https://on.cypress.io/click) now properly work on elements inside a `contenteditable` element. Fixes [#2717](https://github.com/cypress-io/cypress/issues/2717) and [#7721](https://github.com/cypress-io/cypress/issues/7721). - We fixed a regression introduced in [5.6.0](https://on.cypress.io/changelog#5-6-0) that would cause the Test Runner to crashes and display a white page when switching tabs while tests are running. Fixes [#9151](https://github.com/cypress-io/cypress/issues/9151). - Fixed an issue where `Content-Length` for `cy.route2` request bodies could be incorrectly recalculated. Fixes [#9166](https://github.com/cypress-io/cypress/issues/9166). **Documentation Changes:** - Our [Migration Guide](https://on.cypress.io/migration-guide) has a new section for 6.0 migration. - Many of our docs examples have been updated to use [`cy.intercept()`](https://on.cypress.io/intercept) in place of `cy.route()` including our [Network Requests](https://on.cypress.io/network-requests) doc. **Misc:** - Added the type of `redirects` and changed `redirectedToUrl` optional for Response types. Addresses [#9275](https://github.com/cypress-io/cypress/issues/9275). **Dependency Updates** - Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `85` to `87`. Addressed in [#9222](https://github.com/cypress-io/cypress/pull/9222). - Upgraded bundled Node.js version from `12.16.3` to `12.18.3`. Addressed in [#9222](https://github.com/cypress-io/cypress/pull/9222). - Upgraded `electron` from `10.1.5` to `11.0.2`. Addressed in [#9222](https://github.com/cypress-io/cypress/pull/9222).