You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
0.86.3: prebuilt React.framework calls pre-rename jsi::Runtime signature, but bundled Hermes only exports jsi::IRuntime — crash at launch (Symbol not found) #58561
App crashes immediately at launch on iOS/Simulator after upgrading to react-native@0.86.3 (via expo@57.0.23, Expo SDK 57), using the standard CocoaPods + react-native.config prebuilt-binary integration (React-Core-prebuilt / use_frameworks!-less default setup). No app code was touched — this reproduces on a stock Expo SDK 57 bare-workflow project after pod install + a normal Release build.
Crash
Termination Reason: DYLD, [0x4] Symbol missing
Symbol not found: __ZN8facebook3jsi5Array18createWithElementsERNS0_7RuntimeESt16initializer_listINS0_5ValueEE
Referenced from: .../ExampleApp.app/Frameworks/React.framework/React
Expected in: .../ExampleApp.app/Frameworks/hermesvm.framework/hermesvm
Root cause (confirmed by direct binary inspection, not inferred)
The vendored React.xcframework (from React-Core-prebuilt.podspec, pinned to the react-native package's own version, 0.86.3) references the pre-rename JSI signature taking facebook::jsi::Runtime&.
Every Hermes build CocoaPods can resolve for this exact react-native version — both variants — exports only the renamed signature taking facebook::jsi::IRuntime&:
$ xcrun nm hermesvm.framework/hermesvm | grep createWithElements
0000000000275ef0 T __ZN8facebook3jsi5Array18createWithElementsERNS0_8IRuntimeESt16initializer_listINS0_5ValueEE
Verified against both available hermes-engine builds for this react-native version:
Classic (RCT_HERMES_V1_ENABLED=0): hermes-engine (0.17.0), resolved via HERMES_VERSION_NAME
Both export only IRuntime-based symbols — same crash either way. This rules out a Hermes-variant-selection issue; it's a structural mismatch between the two independently-versioned prebuilt binaries (React-Core-prebuilt's React.xcframework and hermes-engine's hermesvm.framework) that react-native@0.86.3 ships together.
Also ruled out: stale Xcode DerivedData (wiped ~/Library/Developer/Xcode/DerivedData/<App>-* between attempts — no change, same crash, same binary UUIDs for React.framework across attempts).
Repro
Fresh Expo SDK 57 bare-workflow app (or any app pinning react-native@0.86.3 via the standard CocoaPods prebuilt-binary integration).
pod install
Build Release config for iphonesimulator, install + launch on a simulator.
App terminates immediately with the symbol-missing crash above.
Environment
react-native: 0.86.3
expo: 57.0.23 (SDK 57)
Xcode: 27.0, iOS 27.0 SDK / simulator runtime
hermes-engine: 250829098.0.17 (V1, default) — also reproduced with 0.17.0 (classic, RCT_HERMES_V1_ENABLED=0)
React-Core-prebuilt's vendored React.xcframework should be built against, and link cleanly with, whichever Hermes build hermes-engine.podspec resolves for the same react-native release — no missing-symbol crash at launch.
Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:
For majority of bugs: send us a Pull Request with the RNTesterPlayground.js edited to reproduce your bug.
Correction: this is not a general react-native@0.86.3 defect as originally framed — retracting that claim.
Built a minimal blank Expo SDK 57 app (create-expo-app + expo prebuild, zero custom code) pinning the identical react-native@0.86.3 / expo@57.0.23 / hermes-engine@250829098.0.17 versions, and it does not crash — launches and renders normally.
Direct comparison shows the two projects resolve genuinely different React-Core and React-Core-prebuilt binaries (different checksums in Podfile.lock) despite both declaring the same react-native version — so something in our project's specific dependency graph is causing a different prebuilt artifact to be selected/built, not an issue with 0.86.3 generally. Still isolating which dependency causes the divergence (~40 additional pods vs. the blank app — Reanimated/Worklets and a couple of native-module-heavy libraries are the current suspects) before I can say anything more specific.
Apologies for the noise — will close this out or file something narrower once (if) I find a genuine repro that isn't project-specific.
Activity
react-native-bot commentedon Sep 16, 2026
Warning
Missing reproducer: We could not detect a reproducible example in your issue report. Reproducers are mandatory and we can accept only one of those as a valid reproducer:
You can read more about about it on our website: How to report a bug.
bryandent commentedon Sep 16, 2026
Correction: this is not a general
react-native@0.86.3defect as originally framed — retracting that claim.Built a minimal blank Expo SDK 57 app (
create-expo-app+expo prebuild, zero custom code) pinning the identicalreact-native@0.86.3/expo@57.0.23/hermes-engine@250829098.0.17versions, and it does not crash — launches and renders normally.Direct comparison shows the two projects resolve genuinely different
React-CoreandReact-Core-prebuiltbinaries (different checksums inPodfile.lock) despite both declaring the samereact-nativeversion — so something in our project's specific dependency graph is causing a different prebuilt artifact to be selected/built, not an issue with0.86.3generally. Still isolating which dependency causes the divergence (~40 additional pods vs. the blank app — Reanimated/Worklets and a couple of native-module-heavy libraries are the current suspects) before I can say anything more specific.Apologies for the noise — will close this out or file something narrower once (if) I find a genuine repro that isn't project-specific.
bryandent commentedon Sep 16, 2026
Closing — confirmed this is specific to our project's dependency graph, not a react-native defect. See comment above for the disproof.