Describe the bug
App crashes on every launch when react-native-purchases is installed on iOS 26 beta with React Native new architecture enabled.
-
Environment
- Platform: iOS
- SDK version: react-native-purchases latest
- OS version: iOS 26.3.1 beta (23D771330a)
- Xcode version: 26.4
- React Native version: 0.83 (Expo SDK 55)
- SDK installation: CocoaPods
- How widespread: 100% crash rate on iOS 26 beta devices
-
The native module throws an ObjC exception during TurboModule registration at app startup — before any JavaScript runs. ObjCTurboModule::performVoidMethodInvocation → convertNSExceptionToJSError corrupts Hermes memory → SIGABRT / SIGSEGV. JS-side try-catch and dynamic imports have no effect since the crash happens at native module registration time, not during JS execution.
-
Steps to reproduce:
- Expo SDK 55 / RN 0.83 project with new architecture enabled (cannot disable — required by react-native-reanimated 4.x)
- Install react-native-purchases
- Run on device or simulator with iOS 26 beta
- App crashes immediately on launch every time
Expected: App launches normally
Actual: Immediate crash before first frame renders
-
Crash signature: ObjCTurboModule::performVoidMethodInvocation → objc_exception_rethrow → std::__terminate → SIGABRT
Additional context
New architecture cannot be disabled as react-native-reanimated 4.x calls assert_new_architecture_enabled() at build time. Full crash logs available on request.
Describe the bug
App crashes on every launch when react-native-purchases is installed on iOS 26 beta with React Native new architecture enabled.
Environment
The native module throws an ObjC exception during TurboModule registration at app startup — before any JavaScript runs.
ObjCTurboModule::performVoidMethodInvocation→convertNSExceptionToJSErrorcorrupts Hermes memory → SIGABRT / SIGSEGV. JS-side try-catch and dynamic imports have no effect since the crash happens at native module registration time, not during JS execution.Steps to reproduce:
Expected: App launches normally
Actual: Immediate crash before first frame renders
Crash signature:
ObjCTurboModule::performVoidMethodInvocation→objc_exception_rethrow→std::__terminate→SIGABRTAdditional context
New architecture cannot be disabled as react-native-reanimated 4.x calls
assert_new_architecture_enabled()at build time. Full crash logs available on request.