Deploy fails with ERR_PNPM_OUTDATED_LOCKFILE

Hi everyone,

When I try to deploy my project on Vercel v0 the build fails after about 30–40 seconds with the following error:

ERR_PNPM_OUTDATED_LOCKFILE Cannot install with "frozen-lockfile" because pnpm-lock.yaml is not up to date with <ROOT>/package.json

Note that in CI environments this setting is true by default. If you still need to run install in such cases, use "pnpm install --no-frozen-lockfile"

Build log highlights:

  • Build runs with Vercel CLI 48.1.6.

  • pnpm-lock.yaml version 9 detected, but pnpm@10 is used automatically.

  • Cache skipped because I switched from bun to pnpm.

  • Error points out new dependencies and many mismatches between package.json (with latest) and the lockfile.

Repo/branch: github.com/Leonardohdz02/v0_movana_envios (branch: fork_34, commit: fff819a).

My understanding:

  • In CI, pnpm uses frozen-lockfile by default.

  • Because my pnpm-lock.yaml is not aligned with the package.json specifiers (many latest), the installation fails.

  • Also, the lockfile may have been generated with pnpm@9 while Vercel defaults to pnpm@10, which causes incompatibility.

Questions:

  • Is the recommended fix to regenerate the lockfile with pnpm@10 and pin versions (instead of using latest)?

  • Or should I configure Vercel’s Install Command to pnpm install --no-frozen-lockfile as a temporary workaround?

  • Is there a best practice for migrating from Bun to pnpm to avoid these mismatches?

Thanks in advance for your guidance!

If you regenerate the lock file, pnpm should save its version into your package.json file "packageManager": "pnpm@10.12.3… and then everything should use the same one

There’s no separate best practice, you will always need to get the lock files in order when you migrate from one package manager to another

1 Like