Choosing a runtimeVersion policy for expo-updates OTA releases
expo-updates ships only JavaScript and assets. runtimeVersion is the gate deciding which bundles an installed binary accepts — and how to pick a policy.
ReadMeFeed / Community knowledge
Real questions. Useful conversations. Find the people who know your stack.
expo-updates ships only JavaScript and assets. runtimeVersion is the gate deciding which bundles an installed binary accepts — and how to pick a policy.
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.
Learn how Expo OTA updates let you push JavaScript and asset changes to users instantly, avoiding store rebuilds for UI tweaks and small feature updates.
Learn how to push JavaScript‑only changes to existing Expo builds using OTA updates, with a concrete publish example, verification steps, and key limitations.
Stop waiting for app store reviews for every bug fix. Learn how Expo's OTA updates deliver JavaScript changes instantly and where the native code boundary lies.
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