expo / expo/eas-cli

My Android EAS builds are consistently failing in the Prepare project phase with tar permission errors on normal app files

Open
#3,610 0 comments 0 reactions 0 assignees View on GitHub
needs review
Dominant language
TypeScript
Stars
1.4k
Forks
236
Avg merge
3d 1h
Merged PRs (30d)
91

Description

### Build/Submit details page URL

https://expo.dev/accounts/elysyan/projects/dry-fasting-companion/builds/a1d9a60e-8191-4ecf-899f-e1951caf6800

### Summary

What I see in the logs

Prepare project shows hundreds of lines like:

text
tar: app/index.tsx: Cannot open: Permission denied
tar: app/login.tsx: Cannot open: Permission denied
tar: assets/fonts: Cannot mkdir: Permission denied
tar: assets/images: Cannot mkdir: Permission denied
tar: src/components: Cannot mkdir: Permission denied
tar: src/constants: Cannot mkdir: Permission denied
tar: src/services: Cannot mkdir: Permission denied
tar: src/store: Cannot mkdir: Permission denied
tar: Exiting with failure status due to previous errors
tar -C /home/expo/workingdir/build --strip-components 1 -zxf /home/expo/workingdir/project.tar.gz exited with non-zero code: 2
This is happening on many unrelated, normal files and directories, all under /home/expo/workingdir/build, which makes it look like a permissions problem on the worker rather than a single bad file in my project.

What I’ve already done

Moved the project out of OneDrive and spaces: now at C:\dev\dry-fasting-companion.

Cleaned the repo:

node_modules, .expo, .gradle, android/app/build, android/build, build, dist removed from git tracking.

Confirmed with git ls-files that none of those paths are tracked.

Added .easignore at the project root:

text
node_modules
.expo
.expo-shared
android/.gradle
android/app/build
android/build
build
dist
Created a minimal test branch that:

Moves android/, .expo/, and node_modules/ completely out of the project dir.

Leaves only app/, src/, assets/, package.json, app.json, eas.json, etc.

Ran npm install in that minimal branch.

Verified config locally:

bash
npx expo config --json
This runs successfully.

The EAS CLI shows the archive is now tiny:

text
Compressed project files 1s (823 KB)
So this is no longer a big-archive or node_modules problem.

Why I think this is an EAS worker issue

The error happens while extracting project.tar.gz into /home/expo/workingdir/build, before Metro/Gradle.

Errors are generic Cannot open: Permission denied / Cannot mkdir: Permission denied on normal paths (app/*.tsx, assets/*, src/*).

The local project is clean, and config resolution works.

Could you please check the worker logs for the build above and see why tar is unable to create/open these files? If there’s anything in my project structure or filenames that would trigger this on EAS, I’m happy to adjust, but right now it looks like a permissions issue on the build host.

Thanks in advance for any pointers.

### Managed or bare?

managed

### Environment

my project

### Error output

_No response_

### Reproducible demo or steps to reproduce from a blank project

see above

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.