What this error means

The engine "node" is incompatible with this module means the build or deployment failed in a clean automation environment. The cause is usually runtime version, lockfile state, secrets, project root, or deploy permissions.

Common causes

  • Workflow uses an older Node version than package engines require
  • .nvmrc and workflow configuration disagree
  • Dependency requires a newer runtime
  • Local build uses a different Node version than CI

Copy-paste commands

Check local Node version

node --version
npm --version

Reproduce a clean install

rm -rf node_modules
npm ci

Run the production build locally

npm run build

Check GitHub SSH from a runner-like shell

ssh -T git@github.com

Quick fixes

  1. Open the failed log and find the first error line above the stack trace.
  2. Set actions/setup-node to the project-supported Node.js version and keep .nvmrc or package engines aligned.
  3. Check Node version, working directory, lockfile state, and required secrets.
  4. Rerun the job only after committing the config or lockfile change.

Step-by-step troubleshooting

  1. Find the first log line containing The engine "node" is incompatible with this module.
  2. Check the job Node version and package manager command.
  3. Verify secrets are available for the event type; forked PRs often have restricted secrets.
  4. Compare the workflow working directory with the folder containing package.json.
  5. Run the same install and build commands locally from a clean checkout.

Platform-specific fixes

GitHub Actions

  • Use actions/setup-node for the intended Node version and keep package-lock.json committed for npm ci.

Vercel

  • Check the configured project root, build command, output directory, and environment variables in the Vercel project settings.

Real-world fixes

  • If the lockfile error appears only in CI, regenerate and commit the lockfile instead of switching to npm install in CI.
  • If deploy keys fail, confirm the public key is attached to the target repository and the private key secret keeps newlines intact.
  • Set actions/setup-node to the project-supported Node.js version and keep .nvmrc or package engines aligned.

How to prevent it

  • Keep workflow runtime versions explicit.
  • Commit lockfiles and generated config needed at build time.
  • Add a small CI job that runs the same build command before deploy.