---
title: "9.0.0"
url: "https://www.cypress.io/releases/9-0-0"
description: "Breaking Changes: The nodeVersion configuration option now defaults to system. The behavior of the system option has changed to always use the Node.js…"
---

# 9.0.0

ReleasedReleased on November 9, 2021

**Breaking Changes:**

-   The `nodeVersion` configuration option now defaults to `system`. The behavior of the `system` option has changed to always use the Node.js binary/version that launched Cypress. If Cypress was not launched via the terminal, Cypress will use the `bundled` Node.js version. This could change the behavior of code within your `pluginsFile` since it may be run in your `system` Node.js version. Addresses [#18684](https://github.com/cypress-io/cypress/issues/18684).
    
-   Windows 32-bit is no longer supported in Cypress. Addresses [#17962](https://github.com/cypress-io/cypress/issues/17962).
    
-   An error will now be thrown if an invalid value is passed to `Cypress.config`. Previously invalid values were ignored and could cause unexpected behavior. Addresses [#18589](https://github.com/cypress-io/cypress/pull/18589).
    
-   `cy.contains()` no longer yields the `<body>` element when it matches the content of `<script>` or `<style>` tags. Addresses [#14861](https://github.com/cypress-io/cypress/issues/14861).
    
-   Attempting to add an existing built-in Cypress command using `Cypress.Commands.add()` will now throw an error, indicating that `Cypress.Commands.overwrite()` should be used instead to overwrite the behavior of existing commands. Addresses [#18572](https://github.com/cypress-io/cypress/issues/18572).
    
-   Custom command implementations are now typed based on the declared custom chainables. Addresses [#17496](https://github.com/cypress-io/cypress/pull/17496).
    
-   The bundled Node.js version was upgraded from `14.17.0` to `16.5.0`. This could change the behavior of code within the `pluginsFile` when using the bundled Node.js version of Cypress. Addressed in [#18317](https://github.com/cypress-io/cypress/pull/18317).
    
-   The default read behavior of a fixture provided as a static response in `cy.intercept()` changed from being read as a Buffer to using `utf8` encoding. This aligns the default read behavior of `cy.intercept()` to `cy.readFile()` and `cy.fixture()`. Addresses [#18534](https://github.com/cypress-io/cypress/issues/18534).
    

**Deprecations:**

-   The `nodeVersion` configuration option has been deprecated and will be removed in a future release.
    

**Features:**

-   When `null` is passed as the encoding to `cy.readFile()` or `cy.fixture()`, the file is treated as binary and read as a Buffer. Similarly, `null` passed as the encoding to `cy.writeFile()` allows direct writing of buffers. If the encoding is unspecified, the default remains `utf8`, matching the current behavior. Addresses [#18534](https://github.com/cypress-io/cypress/issues/18534).
    

**Bugfixes:**

-   Sticky elements within a fixed container will now be able to be properly scrolled to during action commands. Fixes [#4233](https://github.com/cypress-io/cypress/issues/4233).
    
-   `document.referrer` will now correctly reflect the correct value from the application under test after `cy.visit()`. Fixes [#4295](https://github.com/cypress-io/cypress/issues/4295).
    

**Dependencies:**

-   Upgraded Chrome browser version used during `cypress run` and when selecting Electron browser in `cypress open` from `91` to `94`. Addressed in [#15292](https://github.com/cypress-io/cypress/pull/18317).
    
-   Upgraded bundled Node.js version from `14.17.0` to `16.5.0`. Addressed in [#15292](https://github.com/cypress-io/cypress/pull/18317).
    
-   Upgraded `electron` from `14.1.0` to `15.2.0`. Addressed in [#15292](https://github.com/cypress-io/cypress/pull/18317).