expo-updates disarms its OTA recovery tasks at RN's first-native-view marker, which rides the first commit ANYWHERE in the root tree — providers above the navigation seam mount native views too. If a shell frame ever paints before Home's first commit, a Home crash afterwards is already 'after content appeared' for expo: a rethrow there would be a plain crash with the recovery tasks removed — strictly worse than the fallback. So the valve now also requires that the app has never completed a commit, latched by a sentinel layout effect that flips inside that very first commit and therefore stays false exactly when a render-phase throw discards it. In the all-at-once launch (the pre-PR world for bad OTAs) the valve fires and the startup-error pipeline runs; in an early-shell world it self-disarms and the fallback wins, matching the fact that cached-update fallback was never available in that world even on main.
Julius Marminge committed on 9/23/2026, 12:29:15 AMparentcb480a0
6 files changedLine totals unavailable