Environment:
- Platform: Zeabur (auto-detect build)
- Framework: Next.js 16.1.6
- Node version: (default, not specified by project)
- Date of occurrence: 2026-03-25
Description:
Deployments using the default auto-detected Node.js build pipeline are failing at step #7 [3/6] RUN npm update -g npm. The global npm binary in the base Docker image has a broken dependency chain — promise-retry is missing from @npmcli/arborist.
Error log:
#7 [3/6] RUN npm update -g npm
#7 15.63 npm error code MODULE_NOT_FOUND
#7 15.63 npm error Cannot find module 'promise-retry'
#7 15.63 npm error Require stack:
#7 15.63 npm error - /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/node_modules/@npmcli/arborist/lib/index.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/node_modules/libnpmfund/lib/index.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/lib/utils/reify-output.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/lib/utils/reify-finish.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/lib/commands/update.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/lib/npm.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/lib/cli/entry.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/lib/cli.js
#7 15.63 npm error - /usr/local/lib/node_modules/npm/bin/npm-cli.js
#7 ERROR: process "/bin/sh -c npm update -g npm" did not complete successfully: exit code: 1
Impact:
All projects using the default Node.js auto-detect pipeline are potentially affected. Any push to main triggers a failed deployment.
Workaround:
I added a custom Dockerfile override to bypass the npm update -g npm step entirely. This should not be necessary — the default pipeline should work out of the box.