Error Knowledge Base NPM EBUSY

npm ERR! code EBUSY

npm could not modify a resource because it is busy/locked (EBUSY).

Affected versions: All supported npm versions.

What This Error Means

npm could not modify a resource because it is busy/locked (EBUSY).

How to Fix It

  1. Identify the path npm is failing on (look for the last referenced file path in the error output).
  2. Close editors/processes that may lock files (watchers, antivirus), then retry. On Windows, a reboot sometimes clears locks.
  3. Retry after cleaning local state when safe (common: remove node_modules and retry install).

Why It Happens

  • A background process is locking files while npm is trying to rename/remove them.

How to Verify

  1. Re-run the original command and confirm the filesystem error no longer appears.
  2. If this is a permission fix, confirm new files in node_modules are owned by the expected user.

Manual filesystem checks

  1. If a directory removal fails, confirm no process is using it (platform-specific: lsof +D <dir>).

Common CLI Output

npm ERR! code EBUSY
crashes in CI with an EBUSY error when it tries to read

Prevention Tips

  • Keep npm cache and project directories owned by the build user.
  • Avoid running project installs as root unless you know exactly why you need it.
  • Ensure CI runners have enough disk space and sensible file descriptor limits.

Where This Can Be Triggered

github.com/npm/cli/blob/417daa72b09c5129e7390cd12743ef31bf3ddb83/workspaces/libnpmexec/lib/with-lock.js

Open-source npm CLI code reference tied to this error code. - GitHub

    try {
      await fs.mkdir(lockPath)
    } catch (err) {
      if (err.code !== 'EEXIST' && err.code !== 'EBUSY' && err.code !== 'EPERM') {
        throw err
      }

Need help or found a mistake? Contact RepoFlow support for questions.

Join our mailing list