Skip to content
Latchkey

ESLint "Failed to load config" - Fix Extends/Config Errors in CI

ESLint tried to load a config named in extends and could not find it. The shareable config package is not installed, or the name in extends does not map to an installed package.

What this error means

ESLint fails immediately with Failed to load config "<x>" to extend from. Referenced from: <path>. No files are linted because ESLint cannot assemble its configuration.

eslint output
Oops! Something went wrong! :(
ESLint: 8.57.0
Error: Failed to load config "airbnb" to extend from.
Referenced from: /app/.eslintrc.json

Common causes

Shareable config not installed

A config like eslint-config-airbnb or eslint-config-prettier is referenced in extends but missing from node_modules (not in package.json, or a clean install dropped it).

Wrong extends name or its peer deps missing

The extends value does not match the package's expected name, or the config's required peer plugins/parsers are not installed, so loading it fails.

How to fix it

Install the config and its peers

Add the shareable config and any peer dependencies it requires.

Terminal
npm install -D eslint-config-airbnb eslint-plugin-import \
  eslint-plugin-jsx-a11y eslint-plugin-react eslint-plugin-react-hooks

Use the correct extends name

  1. Match the extends string to the package (config packages drop the eslint-config- prefix in extends).
  2. Check the config's README for required peer plugins/parsers and install them.
  3. Run npm ci so CI installs exactly what the lockfile pins.

How to prevent it

  • Declare every ESLint config and plugin in devDependencies.
  • Install with npm ci so the lint toolchain is reproducible.
  • Track a shareable config's peer-dependency list when adding it.

Related guides

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