Cypress v5.0.0stable Released Aug 19, 2020
โš ๏ธ Breaking Change Impact Score: 7/10

Cypress v5.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 5.0.**
Read the original context โ†—
Source flags breaking changes โ€” review applicability
๐Ÿ“„ .MD
โšก Executive Summary (TL;DR)

Cypress v5.0.0. Source highlight: *Released 8/19/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 5.0.**

โœจ New Features & Capabilities (1)

  • The type definition for `reporterOptions` has been added. Addresses #7877.

โšก Performance & Enhancements (1)

  • The **Runs** tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in #8141.

๐Ÿ”ง Bug Fixes & Patches (6)

  • The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes #7874 and #8193.
  • Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes #6813.
  • The error `Maximum call stack size exceeded` will no longer throw when calling `scrollIntoView` on an element in the shadow dom. Fixes #7986.
  • Cypress environment variables that accept arrays as their value will now properly evaluate as arrays. Fixes #6810.
  • Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes #6183.
  • When `experimentalShadowDomSupport` is enabled, `.parent()` and `.parentsUntil()` commands now work correctly in shadow dom as well as passing a selector to `.parents()` when the subject is in the shadow dom. Fixed in #8202.
๐Ÿ“„ View Raw Release Notes (Original Developer Log)
*Released 8/19/2020* **Summary:** Cypress now includes support for test retries! Similar to how Cypress will retry assertions when they fail, test retries will allow you to automatically retry a failed test prior to marking it as failed. Read our new guide on Test Retries for more details. **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 5.0.** - The [`cypress-plugin-retries`](https://github.com/Bkucera/cypress-plugin-retries) plugin has been deprecated in favor of test retries built into Cypress. Addresses [#1313](https://github.com/cypress-io/cypress/issues/1313). - The [`Cypress.Cookies.defaults()`](https://on.cypress.io/cookies) `whitelist` option has been renamed to `preserve` to more closely reflect its behavior. Addressed in [#7782](https://github.com/cypress-io/cypress/issues/7782). - The `blacklistHosts` configuration has been renamed to [`blockHosts`](https://on.cypress.io/configuration#Notes) to more closely reflect its behavior. Addressed in [#7622](https://github.com/cypress-io/cypress/issues/7622). - The [`cy.server()`](https://on.cypress.io/server) `whitelist` option has been renamed to `ignore` to more closely reflect its behavior. Addresses [#6642](https://github.com/cypress-io/cypress/issues/6642). - `libgbm-dev` is now a requirement to run Cypress on Linux. Addressed in [#7791](https://github.com/cypress-io/cypress/pull/7791). - Values yielded by [`cy.setCookie()`](https://on.cypress.io/setcookie), [`cy.getCookie()`](https://on.cypress.io/getcookie), and [`cy.getCookies()`](https://on.cypress.io/getcookies) will now contain the `sameSite` property if specified. Addresses [#6892](https://github.com/cypress-io/cypress/issues/6892). - The `experimentalGetCookiesSameSite` configuration flag has been removed, since this behavior is now the default. Addresses [#6892](https://github.com/cypress-io/cypress/issues/6892). - The return type of the [`Cypress.Blob`](https://on.cypress.io/blob) methods `arrayBufferToBlob`, `base64StringToBlob`, `binaryStringToBlob`, and `dataURLToBlob` have changed from `Promise<Blob>` to `Blob`. Addresses [#6001](https://github.com/cypress-io/cypress/issues/6001). - Cypress no longer supports file paths with a question mark `?` in them. We now use the [webpack preprocessor](https://github.com/cypress-io/cypress-webpack-preprocessor) by default and it does not support files with question marks. Addressed in [#7982](https://github.com/cypress-io/cypress/pull/7982). - For TypeScript compilation of spec, support, and plugins files, the `esModuleInterop` option is no longer coerced to `true`. If you need to utilize `esModuleInterop`, set it in your `tsconfig.json`. Addresses [#7575](https://github.com/cypress-io/cypress/issues/7575). - Cypress now requires TypeScript 3.4+. Addressed in [#7856](https://github.com/cypress-io/cypress/issues/7856). - Installing Cypress on your system now requires Node.js 10+. Addresses [#6574](https://github.com/cypress-io/cypress/issues/6574). - In spec files, the values for the globals `__dirname` and `__filename` no longer include leading slashes. Addressed in [#7982](https://github.com/cypress-io/cypress/pull/7982). **Features:** - There's a new `retries` configuration option to configure the number of times to retry a failing test. Addresses [#1313](https://github.com/cypress-io/cypress/issues/1313). - [`.click()`](https://on.cypress.io/click), [`.dblclick()`](https://on.cypress.io/dblclick), and [`.rightclick()`](https://on.cypress.io/rightclick) now accept options `altKey`, `ctrlKey`, `metaKey`, and `shiftKey` to hold down key combinations while clicking. Addresses [#486](https://github.com/cypress-io/cypress/issues/486). - You can now chain `.snapshot()` off of `cy.stub()` and `cy.spy()` to disabled snapshots during those commands. For example: `cy.stub().snapshot(false)`. Addresses [#3849](https://github.com/cypress-io/cypress/issues/3849). **Bugfixes:** - The error `Cannot set property 'err' of undefined` will no longer incorrectly throw when rerunning tests in the Test Runner. Fixes [#7874](https://github.com/cypress-io/cypress/issues/7874) and [#8193](https://github.com/cypress-io/cypress/issues/8193). - Cypress will no longer throw a `Cannot read property 'isAttached' of undefined` error during `cypress run` on Firefox versions >= 75. Fixes [#6813](https://github.com/cypress-io/cypress/pull/6813). - The error `Maximum call stack size exceeded` will no longer throw when calling `scrollIntoView` on an element in the shadow dom. Fixes [#7986](https://github.com/cypress-io/cypress/issues/7986). - Cypress [environment variables](https://on.cypress.io/environment-variables) that accept arrays as their value will now properly evaluate as arrays. Fixes [#6810](https://github.com/cypress-io/cypress/issues/6810). - Elements having `display: inline` will no longer be considered hidden if it has child elements within it that are visible. Fixes [#6183](https://github.com/cypress-io/cypress/issues/6183). - When [`experimentalShadowDomSupport`](https://on.cypress.io/experiments) is enabled, [`.parent()`](https://on.cypress.io/parent) and [`.parentsUntil()`](https://on.cypress.io/parentsuntil) commands now work correctly in shadow dom as well as passing a selector to [`.parents()`](https://on.cypress.io/parents) when the subject is in the shadow dom. Fixed in [#8202](https://github.com/cypress-io/cypress/pull/8202). - Screenshots will now be correctly taken when a test fails in an `afterEach` or `beforeEach` hook after the hook has already passed. Fixes [#3744](https://github.com/cypress-io/cypress/issues/3744). - Cypress will no longer report screenshots overwritten in a `cy.screenshot()` [`onAfterScreenshot`](https://on.cypress.io/screenshot#Get-screenshot-info-from-the-onAfterScreenshot-callback) option as a unique screenshot. Fixes [#8079](https://github.com/cypress-io/cypress/issues/8079). - Taking screenshots will no longer fail when the screenshot names are too long for the filesystem to accept. Fixes [#2403](https://github.com/cypress-io/cypress/issues/2403). - The "last used browser" will now be correctly remembered during `cypress open` if a non-default-channel browser was selected. Fixes [#8281](https://github.com/cypress-io/cypress/issues/8281). - For TypeScript projects, `tsconfig.json` will now be loaded and used to configure TypeScript compilation of spec and support files. Fixes [#7006](https://github.com/cypress-io/cypress/issues/7006) and [#7503](https://github.com/cypress-io/cypress/issues/7503). - `reporterStats` now correctly show the number of passed and failed tests when a test passes but the `afterEach` fails. Fixes [#7730](https://github.com/cypress-io/cypress/issues/7730). - The Developer Tools menu will now always display in Electron when switching focus from Specs to the Test Runner. Fixes [#3559](https://github.com/cypress-io/cypress/pull/3559). **Documentation Changes:** - We have a new guide on Test Retries. - Our [Migration Guide](https://on.cypress.io/migration-guide) has a new section for 5.0 migration. **Misc:** - Cypress now uses the [webpack preprocessor](https://github.com/cypress-io/cypress-webpack-preprocessor) by default to preprocess spec files. - The **Runs** tab within the Test Runner has a new improved design when the project has not been set up or login is required. Addressed in [#8141](https://github.com/cypress-io/cypress/pull/8141). - The type for the `Window` object returned from [`cy.window()`](https://on.cypress.io/window) is now correct. Addresses [#7856](https://github.com/cypress-io/cypress/issues/7856). - The type definition for Cypress's `ApplicationWindow` can now be extended. Addresses [#7856](https://github.com/cypress-io/cypress/issues/7856). - The type definition for `reporterOptions` has been added. Addresses [#7877](https://github.com/cypress-io/cypress/issues/7877). **Dependency Updates** - Upgraded Chrome browser version used during cypress run and when selecting Electron browser in cypress open from `80` to `83`. Addressed in [#7791](https://github.com/cypress-io/cypress/pull/7791). - Upgraded bundled Node.js version from `12.8.1` to `12.14.1`. Addressed in [#7791](https://github.com/cypress-io/cypress/pull/7791). - Upgraded `chalk` from `2.4.2` to `4.1.0`. Addressed in [#7650](https://github.com/cypress-io/cypress/pull/7650). - Upgraded `cli-table3` from `0.5.1` to `0.6.0`. Addressed in [#7650](https://github.com/cypress-io/cypress/pull/7650). - Upgraded `electron` from `8.3.1` to `9.2.0`. Addressed in [#7791](https://github.com/cypress-io/cypress/pull/7791) and [#8235](https://github.com/cypress-io/cypress/pull/8235). - Upgraded `execa` from `1.0.0` to `4.0.2`. Addressed in [#7650](https://github.com/cypress-io/cypress/pull/7650). - Upgraded `express` from `4.16.4` to `4.17.1`. Addressed in [#8179](https://github.com/cypress-io/cypress/pull/8179). - Upgraded `fs-extra` from `8.1.0` to `9.0.1`. Addressed in [#7650](https://github.com/cypress-io/cypress/pull/7650). - Upgraded `log-symbols` from `3.0.0` to `4.0.0`. Addressed in [#7650](https://github.com/cypress-io/cypress/pull/7650). - Upgraded `tmp` from `0.1.0` to `0.2.1`. Addressed in [#7650](https://github.com/cypress-io/cypress/pull/7650).