If your builds suddenly fail with messages like cannot find matching keyid: {"signatures":[...],"keys":[...]}, it usually means npm registry keys have been rotated, and your older Corepack can’t verify new versions of pnpm (like 9.15.4 or 10.1.0+).
This can happen on GitHub Actions, GitLab, Docker, or anywhere else you’re using Corepack to manage package managers.
- Check Node.js version:
node -v(If you seev16.x, you’re on Node 16; if you seev18.xor higher, you’re on Node 18+.) - Check Corepack version:
corepack --version.Anything older than0.31.0may not have the new key set. - Look for conditional logic. Some workflows only update Corepack on Node 16. If you’re building on Node 18+, that logic might skip the update entirely.
Upgrade to the latest Corepack (≥ 0.31.0):
steps: - name: Use Latest Corepack run: | echo "Before: corepack version => $(corepack --version || echo 'not installed')" npm install -g corepack@latest echo "After : corepack version => $(corepack --version)" corepack enable pnpm --versionThis ensures you have the new signing keys that match the npm registry changes.
Use Corepack 0.20, which is the last release that still supports Node 16 and includes the updated keys for recent pnpm versions:
steps: - name: Pin Corepack 0.20 run: | echo "Before: corepack => $(corepack --version || echo 'not installed')" npm install -g corepack@0.20 echo "After : corepack => $(corepack --version)" corepack enable pnpm --version
After 0.20, newer Corepack versions drop Node 16 support, so this is a safe “stopgap” if you can’t move off Node 16 yet.
While setting COREPACK_INTEGRITY_KEYS=0 (to skip signature checks) can bypass the error, it also bypasses important security. Use that approach only if you fully understand the risks.
- Check your Node and Corepack versions.
- Upgrade to Corepack ≥
0.31.0if you’re on Node 18+ (or pinned to0.20if you need Node 16). - Remove any conditional logic that prevents the Corepack upgrade from running on your actual environment.
- Done! Your CI builds should succeed, and you stay secure.
For more details, see Corepack Issue #612 and the Corepack Releases.