# What changed in cypress-fail-fast

> 22 changes in cypress-fail-fast 8 from its official release notes, upgrade guides and advisories: 17 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/npm/cypress-fail-fast/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## cypress-fail-fast 8

### Breaking changes

- The plugin now requires Cypress 15.10.0 or newer and no longer supports older versions. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The plugin no longer uses Cypress.env() for configuration; options must be provided via Cypress.expose(). (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- Plugin options must now be provided via Cypress.expose() in the Cypress configuration file. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The environment-based key is replaced by failFastBail. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The environment-based key is replaced by failFastEnabled. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- This option is removed; use failFastEnabled and failFastIgnorePerTestConfig instead. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The environment-based key is replaced by failFastStrategy. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The renamed camelCase option replaces FAIL_FAST_BAIL in the Cypress.expose() configuration model. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The renamed option controls whether fail-fast is enabled globally. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- Controls whether per-test configuration is honored and combines with failFastEnabled to replace FAIL_FAST_PLUGIN behavior. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The renamed camelCase option replaces FAIL_FAST_STRATEGY in the Cypress.expose() configuration model. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- Replaces parallelCallbacks with an object containing optional onFailFastTriggered and shouldTriggerFailFast callbacks. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- This optional callback runs once when fail-fast mode is triggered and receives the strategy and triggering test information. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- This optional callback runs before each test and can return true to enter fail-fast mode based on external state. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The parallel strategy is removed; users implementing parallel-run coordination must provide their own coordination mechanism using hooks. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- The plugin option was renamed to hooks, and its structure changed. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
- Fail-fast now uses Mocha this.skip(), so affected tests appear as pending rather than skipped. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)

### New APIs and options

- Adds the describe strategy, which skips only remaining tests in the failed test’s immediate parent describe, regardless of per-suite configuration. TypeScript consumers switching exhaustively over FailFastStrategy or the onFailFastTriggered hook’s strategy may need to handle the new member. (8.2.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.2.0)

### Behavior and default changes

- With the describe strategy, failures are counted separately for each describe block, and a block is skipped after it accumulates the configured number of failures. The spec and run strategies continue counting failures globally. (8.2.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.2.0)
- The hook can return a Promise; hook errors are handled with warnings. (8.1.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.1.0)
- The hook can return a Promise; hook errors are handled with warnings. (8.1.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.1.0)
- The plugin no longer uses Cypress.stop() to implement fail-fast behavior; it uses Mocha this.skip() instead. (8.0.0) — [release notes](https://github.com/javierbrea/cypress-fail-fast/releases/tag/v8.0.0)
