Skip to content
Latchkey

Cypress "experimentalRunAllSpecs" - Run-All Disabled or Crashing

Cypress’s "Run all specs" button is gated behind the experimentalRunAllSpecs flag. If it is not enabled (or the Cypress version changed the flag), the option is missing - and when enabled, running every spec in one long-lived browser can exhaust memory.

What this error means

The "Run all specs" entry does not appear in the Cypress app, or enabling it makes a marathon run crash the browser partway through. Individual specs run fine; only the combined run-all path is affected.

Cypress output
// cypress.config.js missing the flag -> no "Run all specs" button
module.exports = { e2e: { /* experimentalRunAllSpecs not set */ } };

// or, with it on: the browser crashes after dozens of specs (OOM)

Common causes

Flag not enabled (or renamed by version)

experimentalRunAllSpecs: true must be set under e2e to expose run-all. A Cypress upgrade may have changed or removed the experimental flag, so an old config no longer enables it.

Memory growth across many specs in one browser

Run-all keeps one browser for the whole batch. DOM snapshots and memory accumulate across dozens of specs, eventually crashing - the same growth that hits long single specs, amplified.

How to fix it

Enable the experimental flag

cypress.config.js
// cypress.config.js
module.exports = {
  e2e: { experimentalRunAllSpecs: true },
};

Avoid run-all for huge suites in CI

  1. In CI, run specs in batches (or via cypress run with a spec glob) rather than one giant run-all.
  2. Reduce per-spec memory growth (numTestsKeptInMemory, smaller experimentalMemoryManagement).
  3. Reserve run-all for local exploration, not large CI runs.

How to prevent it

  • Set experimentalRunAllSpecs explicitly and re-check it after upgrades.
  • Batch specs in CI instead of one all-in-one run.
  • Tune memory-management options for long runs.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →