npm/cli

[BUG] Parallelizing `npm version` in workspaces results in error

Open

#9,412 opened on May 27, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)JavaScript (3,025 forks)batch import
BugGood First IssueNeeds Triage

Repository metrics

Stars
 (7,529 stars)
PR merge metrics
 (Avg merge 3d 12h) (139 merged PRs in 30d)

Description

Is there an existing issue for this?

  • I have searched the existing issues

This issue exists in the latest npm version

  • I am using the latest npm

Current Behavior

I run npm version via ultra-runner or xargs in parallel in >40 workspaces.

One or more calls fail because of "invalid" package.json - in one case (so far) package.json even had been cut to zero bytes.

AFAICT, executing npm version in a single workspace calls changeWorkspaces, which in turn reads every package.json inside the mono-repo via mapWorkspaces. Parallel npm version race, so later calls may find a package.json that has been started to convert (and may be temporarily empty).

Expected Behavior

npm version in a single workspace should not access other workspaces.

This is shown by --no-workspaces which works. But I always would need to remember to include it.

Maybe npm version should internally set --no-workspaces.

Steps To Reproduce

I have no explicit repro, but it's simple: have a workspace tree with ~40 or 50 workspaces. Use ultra-runner or xargs to execute npm version patch --no-git-tag-version

Environment

  • npm: 11.15 (starts with 8, afaict)
  • Node.js: 22/24
  • OS Name: Linux

Contributor guide