# npm ci: lockfile is out of sync with package.json

> Getting the error “lockfile is out of sync with package.json”? Here is how to fix it. Install locally, then commit the updated lockfile.

**npm ci: lockfile is out of sync with package.json.** package.json changed — often edited by an AI builder — without its lockfile, and CI installs refuse to guess.

- Web build. The lockfile doesn’t match package.json.
- Interactive page: https://capwr.app/free-tools/build-error-explainer/npm-ci-lockfile-out-of-sync
- Build error explainer: https://capwr.app/free-tools/build-error-explainer
- Last updated: 2026-10-03

## What this error means

package.json changed — often edited by an AI builder — without its lockfile, and CI installs refuse to guess.

## Why it happens

package.json lists dependencies the lockfile does not. CI uses a frozen lockfile, so it stops instead of rewriting it.

## The message tools print

```
npm ERR! `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.
```

## How to fix it

1. Run the install command locally (npm install, bun install…).
2. Commit the updated lockfile together with package.json.

## Check a log that shows this

Paste the failing step into the [build error explainer](https://capwr.app/free-tools/build-error-explainer). It matches this message, and any others in the same log, in your browser. Nothing is uploaded.

## Other Web build errors

- [npm ci needs an existing package-lock.json](https://capwr.app/free-tools/build-error-explainer/npm-ci-package-lock-json)
- [npm ERESOLVE unable to resolve dependency tree](https://capwr.app/free-tools/build-error-explainer/npm-eresolve)
- [JavaScript heap out of memory](https://capwr.app/free-tools/build-error-explainer/javascript-heap-out-of-memory)
- [Rollup failed to resolve import](https://capwr.app/free-tools/build-error-explainer/rollup-failed-to-resolve-import)
- [error TS: TypeScript errors stop the build](https://capwr.app/free-tools/build-error-explainer/typescript-error-ts)
- [Could not find the web assets directory](https://capwr.app/free-tools/build-error-explainer/could-not-find-the-web-assets-directory)
- [Capacitor: Invalid App ID](https://capwr.app/free-tools/build-error-explainer/invalid-app-id)

## Build the web app before the native one

CapWrapp installs dependencies from the lockfile, builds the site, and runs Capacitor sync before the native build, from the GitHub repo you connect.

[Get started free](https://capwr.app/login).

## About CapWrapp

CapWrapp turns a web app on GitHub — built with Lovable, Bolt, Base44, Cursor or by hand — into iPhone and Android apps. It adds Capacitor if the repo needs it, signs the builds, and ships them to TestFlight and Google Play from GitHub Actions, with no Mac or Xcode on your side. [Get started free](https://capwr.app/login) · [Lovable to App Store guide](https://capwr.app/guides/lovable-to-app-store)
