Managing Over-the-Air JS Updates with Expo EAS Update
Learn how to use EAS Update to deploy JavaScript and asset fixes to Expo apps without store reviews, using runtimeVersion and channels for safety.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
Learn how to use EAS Update to deploy JavaScript and asset fixes to Expo apps without store reviews, using runtimeVersion and channels for safety.
Learn how to use expo-updates to deploy JavaScript fixes and features instantly, bypassing the App Store review process while maintaining native stability.
Architecture note for using EAS Update to deliver JavaScript and assets over the air in managed Expo apps, covering requirements, minimal design, trust boundaries, operational checks, failure modes and when to change the design.
Expo Updates lets you ship JavaScript fixes in minutes instead of waiting for store review — but only if you treat the runtime version as the compatibility contract it is.
EAS Update lets you push JavaScript fixes to installed Expo apps without store review. Here's how runtime versions keep OTA updates safe, a staged rollout example with rollback, and where the model breaks down.
eas update succeeded but users still run the old bundle? Diagnose channel/branch mapping, runtime version mismatches, cold-start timing, and crash rollbacks — and know when OTA can't help.
OTA updates let you fix shipped JavaScript without a store review, but only inside the native boundary. How runtime versioning and rollback actually work.
Context Our app ships with the expo-updates runtime embedded in the binary and receives OTA bundles from the EAS Update service via channel/branch mapping. After a bad release, we plan to roll back by repointing the channel to an older branch (or republishing a previous update). The interoperability gap is at the trust boundary: the client decides which publ
JS Bundle and Native Runtime Incompatibility When utilizing Expo Application Services (EAS) Update for over-the-air (OTA) deployments, the runtimeVersion defined in app.json serves as the primary guardrail. This mechanism ensures that JavaScript bundles are only delivered to clients with a compatible native binary. A critical constraint exists where OTA upda