Impact Score: 5/10
Cypress v4.9.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.
โก Executive Summary (TL;DR)
Cypress v4.9.0. Source highlight: *Released 6/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.
๐ง Bug Fixes & Patches (6)
- We fixed a regression in 4.6.0 where errors thrown from the application under test as strings would not be correctly handled. Fixes #7590.
- We fixed a regression in 4.8.0 where `.click()` would hang if the subject had a shadow root and `experimentalShadowDomSupport` was not enabled. Fixes #7679.
- We fixed a regression in 4.6.0 so that `.should('have.value')` now properly asserts against `
- Cypress no longer responds with 413 responses during a recorded `cypress run` when the stdout is too large. Fixes #7548.
- We fixed an issue where Cypress could exit successfully even with failing tests when launched in global mode. Fixes #7755.
- Assertion logs now properly display as parent commands in the Command Log regardless of what is in the `beforeEach` hook. Fixes #7731.
๐ View Raw Release Notes (Original Developer Log)
*Released 6/23/2020*
**Features:**
- An animated progress bar now displays on every command in the [Command Log](https://on.cypress.io/test-runner#Command-Log) indicating how long the command has left to run before reaching its command timeout. Addresses [#7642](https://github.com/cypress-io/cypress/issues/7642).
- There is now an [`experimentalFetchPolyfill`](https://on.cypress.io/experiments) configuration option. When this option is `true`, Cypress will automatically replace `window.fetch` with a polyfill that Cypress can spy on and stub. Addresses [#7710](https://github.com/cypress-io/cypress/issues/7710).
- You can now pass a `--quiet` flag to [`cypress run`](https://on.cypress.io/command-line#cypress-run) to silence any Cypress specific output from stdout. Addresses [#7714](https://github.com/cypress-io/cypress/issues/7714).
**Bugfixes:**
- [`cy.wait()`](https://on.cypress.io/wait) now correctly resolves when waiting for XHR requests that contain resource-like text in the XHR's query params or hash (like `.js`, .`html`, `.css`). [#7280](https://github.com/cypress-io/cypress/issues/7280).
- We fixed a regression in [4.6.0](https://on.cypress.io/changelog-4-6-0) where errors thrown from the application under test as strings would not be correctly handled. Fixes [#7590](https://github.com/cypress-io/cypress/issues/7590).
- We fixed a regression in [4.8.0](https://on.cypress.io/changelog-4-8-0) where [`.click()`](https://on.cypress.io/click) would hang if the subject had a shadow root and [`experimentalShadowDomSupport`](https://on.cypress.io/experiments#Shadow-DOM) was not enabled. Fixes [#7679](https://github.com/cypress-io/cypress/issues/7679).
- We fixed a regression in [4.6.0](https://on.cypress.io/changelog-4-6-0) so that [`.should('have.value')`](https://on.cypress.io/should) now properly asserts against `<progress>`, `<meter>` or `<li>` element's values. Fixes [#7603](https://github.com/cypress-io/cypress/issues/7603).
- Cypress no longer responds with 413 responses during a recorded `cypress run` when the stdout is too large. Fixes [#7548](https://github.com/cypress-io/cypress/issues/7548).
- We fixed an issue where Cypress could exit successfully even with failing tests when launched in global mode. Fixes [#7755](https://github.com/cypress-io/cypress/issues/7755).
- Assertion logs now properly display as parent commands in the [Command Log](https://on.cypress.io/test-runner#Command-Log) regardless of what is in the `beforeEach` hook. Fixes [#7731](https://github.com/cypress-io/cypress/issues/7731).
- When [`experimentalShadowDomSupport`](https://on.cypress.io/experiments#Shadow-DOM) is enabled, querying shadow dom in certain situations will no longer cause the error `Cannot read property 'length' of undefined` during `cypress run`. Fixes [#7676](https://github.com/cypress-io/cypress/issues/7676).
- Highlighting of elements upon hover of a command in the [Command Log](https://on.cypress.io/test-runner#Command-Log) are now visible when targeting absolute positioned elements. Fixes [#7762](https://github.com/cypress-io/cypress/issues/7762).
- [`cypress run`](https://on.cypress.io/command-line#cypress-run) will no longer crash when provided an empty string to the `--project` flag. Fixes [#7743](https://github.com/cypress-io/cypress/issues/7743).
**Misc:**
- There is now a loading state to indicated when tests are loading in the [Command Log](https://on.cypress.io/test-runner#Command-Log). Addresses [#7700](https://github.com/cypress-io/cypress/issues/7700).
- The type definitions for `fixturesFolder`, `pluginsFile`, `screenshotsFolders` and `videoCompression` have been updated to allow `false` TypeScript types. Addresses [#7654](https://github.com/cypress-io/cypress/issues/7654).
- The type definitions for `cy.wait(ms)` now correctly yield the type of the previous subject. Addresses [#7682](https://github.com/cypress-io/cypress/issues/7682).
- The type definitions now allow for the 'key' keyword when chaining off 'any' or 'all' assertion chainers. Addresses [#7665](https://github.com/cypress-io/cypress/issues/7665).
**Dependency Updates:**
- Upgraded `arch` from `2.1.1` to `2.1.2`. Addressed in [#7672](https://github.com/cypress-io/cypress/pull/7672).
- Upgraded `eventemitter2` from `4.1.2` to `6.4.2`. Addressed in [#7705](https://github.com/cypress-io/cypress/pull/7705) and [#7707](https://github.com/cypress-io/cypress/pull/7707).
- Upgraded `getos` from `3.1.1` to `3.2.1`. Addressed in [#7685](https://github.com/cypress-io/cypress/pull/7685).
- Upgraded `is-installed-globally` from `0.1.0` to `0.3.2`. Addressed in [#7703](https://github.com/cypress-io/cypress/pull/7703).
- Upgraded `jimp` from `0.12.0` to `0.13.0`. Addressed in [#7618](https://github.com/cypress-io/cypress/pull/7618).
- Upgraded `moment` from `2.24.0` to `2.26.0`. Addressed in [#7718](https://github.com/cypress-io/cypress/pull/7718).
- Upgraded `signal-exit` from `3.0.2` to `3.0.3`. Addressed in [#7738](https://github.com/cypress-io/cypress/pull/7738).