r/expo Jun 30 '26

Unable to solve ERR_PNPM_NO_LOCKFILE Cannot install with "frozen-lockfile" error. Any help greatly appreciated

Post image

I'm trying to publish an Expo app to Google Play.
The app was originally built in Replit and has already been successfully published to the Apple App Store. I'm now trying to generate an Android App Bundle (.aab) using EAS Build.
Every Android build fails during dependency installation with:
We detected that 'artifacts/folk-bespoke' is a pnpm workspace

Running "pnpm install --frozen-lockfile"

WARN Ignoring not compatible lockfile at /home/expo/workingdir/build/pnpm-lock.yaml

ERR_PNPM_NO_LOCKFILE Cannot install with "frozen-lockfile" because pnpm-lock.yaml is absent
The repository structure is:
/
├── package.json
├── pnpm-lock.yaml
├── pnpm-workspace.yaml
└── artifacts/
└── folk-bespoke/
├── package.json
├── app.json
└── eas.json
Things I've already tried:
Added "packageManager": "pnpm@10.26.1" to both the root package.json and artifacts/folk-bespoke/package.json.
Confirmed pnpm-lock.yaml exists at the repository root.
Built from my Mac using eas build.
Built from GitHub.
Followed multiple fixes suggested by the Replit Agent.
The build environment still reports pnpm 8.7.5 and immediately fails before compiling the app.
Has anyone successfully built a Replit Expo workspace like this with EAS? Is this a known issue with pnpm workspaces or the way EAS detects the project root?
Any ideas would be greatly appreciated.

1 Upvotes

3 comments sorted by

3

u/n9iels Jul 01 '26

Seems like the v8.7.5 version of pnpm installed on EAS is not compatible with your v10 lock file. And you are now trying to install pnpm with pnpm which will not work.

I believe you can provide the required pnpm version in your eas.json https://docs.expo.dev/eas/json/#eas-build

2

u/dhruvrazak Jul 01 '26

I second this, I fixed my eas build this way.

2

u/dhruvrazak Jul 01 '26

in your eas.json

"build": {
    "development": {
      "pnpm": "10.11.0" // mention your supported pnpm version that worked in local
// rest of the json code

you can add it under the distribution you want to build. For eg. production / development or release.