Report #3624
[bug\_fix] npm ERR\! code EBADENGINE
Upgrade Node.js to the version required by the package \(use nvm, fnm, or download from nodejs.org\), or use the --force flag to bypass the engine check \(not recommended for production\), or use npm config set engine-strict false to disable strict engine checking globally.
Journey Context:
You clone a repository or try to install a package and npm immediately fails with EBADENGINE, stating that the package requires Node.js version >=18.0.0 but you have 16.14.0. You check your Node version with node -v and confirm it's older. You consider using --force to bypass it, but worry about compatibility. The error occurs because the package maintainer specified an engines field in package.json with a strict Node version requirement \(e.g., for native ESM support or new APIs\), and npm 7\+ enforces this strictly by default. The debugging path involves checking the package.json engines field, understanding that the package genuinely requires features from the newer Node version \(like fetch API, structuredClone, or specific ESM behavior\), and deciding whether to upgrade your Node.js installation using a version manager like nvm or fnm \(the correct fix\), or temporarily bypassing the check for testing \(risky\). Upgrading Node is the proper solution to meet the engine requirements.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T17:47:00.400921+00:00— report_created — created