fix(mobile): match react version to react-native 0.85.3 vendored renderer (19.2.3) - #1
Closed
KrzysztofMoch wants to merge 1 commit into
Closed
KrzysztofMoch wants to merge 1 commit into
KrzysztofMoch wants to merge 1 commit into
Conversation
…erer (19.2.3) Commit 108e017 (pingdotgg#4643) bumped react/react-dom to 19.2.6 in apps/mobile, but react-native 0.85.3 vendors a renderer built against react 19.2.3. The Paper renderer performs a module-scope exact-version check against React.version and throws at startup, crashing every fresh native build. Revert react and react-dom to 19.2.3 for the mobile app only; apps/web stays on 19.2.6.
Owner
Author
|
Closing — opened without explicit request. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
pingdotgg#4643 (commit
108e01746) bumpedreact/react-domfrom19.2.3to19.2.6inapps/mobile.react-native@0.85.3vendors a renderer built against react 19.2.3, and the legacy (Paper) renderer performs a module-scope exact-version check againstReact.version(ReactNativeRenderer-prod.js, ~line 10922). This app evaluates the Paper renderer during initial bundle evaluation (via the lazyRendererProxybindings), so every fresh native build crashes at startup (signal 6), before the splash screen resolves:This also affects any OTA bundle built from current main — the fingerprint runtime policy won't save existing binaries from a JS-only mismatch, so an OTA push would crash already-shipped apps.
Fix
Revert
reactandreact-domto19.2.3inapps/mobile/package.json(exact pre-pingdotgg#4643 versions) and updatepnpm-lock.yaml. Noreact-native0.85.x patch release with a 19.2.6 renderer exists (0.85.3 is the latest), so pinning react back is the only correct fix. Patching the renderer version string is not an option — the exact-match check exists because ReactSharedInternals may differ between patch releases.apps/webintentionally stays on react 19.2.6 (the workspace resolves react per app; the lockfile still resolves 19.2.6 there).Verification
reactresolved fromapps/mobileis19.2.3, matching the only version string in the vendoredReactNativeRenderer-prod.js.tsc --noEmitand repo lint pass with no new issues.APP_VARIANT=production+ Release for the iOS simulator, launched it: app gets past startup and renders the Threads screen; noIncompatible React versionsexception in simulator logs.Note (pre-existing, unrelated): a plain
expo run:ios --configuration Releasetargeting a simulator fails because the vendoredGhosttyKit.xcframeworksimulator slice is arm64-only while Release builds all archs (arm64 x86_64); verification usedONLY_ACTIVE_ARCH=YES. Device/EAS Release and Debug simulator builds are unaffected.