Skip to content

fix: raise project archive size limit from 2GB to 4GB#3487

Open
yocontra wants to merge 2 commits intoexpo:mainfrom
yocontra:fix/raise-archive-size-limit
Open

fix: raise project archive size limit from 2GB to 4GB#3487
yocontra wants to merge 2 commits intoexpo:mainfrom
yocontra:fix/raise-archive-size-limit

Conversation

@yocontra
Copy link

Summary

  • Raises MAX_ALLOWED_PROJECT_TARBALL_SIZE from 2 GiB to 4 GiB in repository.ts
  • Apple raised the App Store package limit to 4GB, but eas-cli still enforces a 2GB client-side limit on project archives
  • Apps bundling on-device ML models (LLaMA, Stable Diffusion, Whisper, etc.) regularly exceed 2GB and hit this artificial limit before reaching any server-side constraint
  • The upload path already uses fs.createReadStream() — no memory issues with larger archives
  • The server can still enforce its own limits independently via GCS signed URL constraints
  • The 150MB soft warning remains unchanged
  • Error message auto-updates via formatBytes()

Related: expo/expo#43755 (fixes the fs.readFile 2GB Buffer limit in AFCClient.uploadFile())

Test plan

  • Verified formatBytes() renders "4.0 GB" correctly for the new limit
  • Confirmed upload path uses streaming (fs.createReadStream) — no buffering issues
  • No test files reference this constant directly

Apple raised the App Store package limit to 4GB, but eas-cli still
enforces a 2GB client-side limit on project archives. Apps bundling
on-device ML models (LLaMA, Stable Diffusion, etc.) regularly exceed
2GB and hit this limit before reaching any server-side constraint.

The upload path already uses streaming (fs.createReadStream), so there
are no memory issues with larger archives. The server can still enforce
its own limits independently via GCS signed URL constraints.
Apps with large on-device ML models need to deploy assets exceeding
500MB. Apple's App Store now supports packages up to 4GB, and the
upload path already uses streaming (fs.createReadStream / Readable.from),
so there are no memory issues with larger assets. The server enforces
its own limits via 413 responses independently.
@github-actions
Copy link

Subscribed to pull request

File Patterns Mentions
**/* @douglowder
packages/eas-cli/src/worker/** @kitten, @kadikraman
packages/eas-cli/src/commands/deploy/** @kitten, @kadikraman
packages/eas-cli/src/build/** @sjchmiela

Generated by CodeMention

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant