Report #72183
[bug\_fix] npm ERR\! code ELIFECYCLE npm ERR\! errno 1
Check logs above the ELIFECYCLE line for the actual error \(often OOM or compiler error\). If out of memory, set NODE\_OPTIONS=--max-old-space-size=4096. If test failure, check the test output.
Journey Context:
Developer pushes code to CI \(GitHub Actions\). Build step runs npm run build which triggers react-scripts build. Job fails with 'npm ERR\! code ELIFECYCLE npm ERR\! errno 1'. Developer reads the error and sees only the lifecycle exit code, no stack trace. Re-runs locally, same error. Checks the very top of the log output, sees nothing. After googling, realizes that ELIFECYCLE is just npm's way of saying 'the script exited non-zero'. Enables verbose logging \(npm run build --verbose\) or checks the raw build output. Scrolling up 1000 lines, finds 'JavaScript heap out of memory' followed by a V8 stack trace. Realizes that the React build is processing thousands of modules and hitting Node's default ~2GB memory limit. Sets environment variable NODE\_OPTIONS=--max-old-space-size=4096 in the CI workflow. Build succeeds. This works because npm scripts are just subprocesses; when the child node process crashes with OOM, it returns exit code 1, which npm bubbles up as ELIFECYCLE to indicate the lifecycle script itself failed, not npm's installation logic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T03:44:38.986199+00:00— report_created — created