Filing here because this is the Bitrise-maintained fork and we hit this while evaluating Bitrise CodePush. Same issue reported on the sibling @code-push-next repo: codemagic-ci-cd/react-native-code-push#56
Steps to Reproduce
- React Native 0.83.4, New Architecture + bridgeless, Hermes, release/TestFlight build.
@code-push-next/react-native-code-push (tested 10.4.1 and 10.4.2).
- iOS integration per the Bitrise CodePush docs:
ReactNativeDelegate.bundleURL() returns CodePush.bundleURL() in the non-DEBUG path (app boots via RCTReactNativeFactory).
- Publish a JS-only update to the deployment, relaunch so the client downloads + installs it.
Expected Behavior
Update installs and the app launches on the new bundle.
Actual Behavior
On the launch that applies the update, the app aborts with RCTFatal on the JS thread inside the legacy bridge RCTJSThreadManager, despite the app running bridgeless. It dies before JS/monitoring init; CodePush then auto-rolls-back on the next launch.
```
Exception Type: EXC_CRASH (SIGABRT)
Last Exception Backtrace:
2 React RCTFatal + 568 (RCTAssert.m:147)
3 React __26-[RCTJSThreadManager init]_block_invoke_2 + 56 (RCTJSThreadManager.mm:34)
4 React facebook::react::RCTMessageThread::tryFunc(...)
10 React +[RCTJSThreadManager runRunLoop]
(hermesvm loaded; New Architecture / bridgeless)
```
Did not help: forcing Hermes bytecode (--hermes on), splitting bundle+push, cleaning the output dir, and 10.4.1 → 10.4.2. A different CodePush client applies OTA updates fine on the same bridgeless RN 0.83 build, so this looks specific to this SDK's bridgeless bundle-load/restart path on iOS. Note the New-Arch fixes here so far look Android-focused; is there an equivalent iOS bridgeless bundle-reload path? Likely related: codemagic #28 and #55.
Environment
- react-native-code-push version: 10.4.2 (also 10.4.1)
- react-native version: 0.83.4 — New Architecture / bridgeless, Hermes
- iOS version: 18.7 (physical device, arm64e)
- Debug or release build? Release
- Simulator or physical device? Physical device
Filing here because this is the Bitrise-maintained fork and we hit this while evaluating Bitrise CodePush. Same issue reported on the sibling
@code-push-nextrepo: codemagic-ci-cd/react-native-code-push#56Steps to Reproduce
@code-push-next/react-native-code-push(tested 10.4.1 and 10.4.2).ReactNativeDelegate.bundleURL()returnsCodePush.bundleURL()in the non-DEBUG path (app boots viaRCTReactNativeFactory).Expected Behavior
Update installs and the app launches on the new bundle.
Actual Behavior
On the launch that applies the update, the app aborts with
RCTFatalon the JS thread inside the legacy bridgeRCTJSThreadManager, despite the app running bridgeless. It dies before JS/monitoring init; CodePush then auto-rolls-back on the next launch.```
Exception Type: EXC_CRASH (SIGABRT)
Last Exception Backtrace:
2 React RCTFatal + 568 (RCTAssert.m:147)
3 React __26-[RCTJSThreadManager init]_block_invoke_2 + 56 (RCTJSThreadManager.mm:34)
4 React facebook::react::RCTMessageThread::tryFunc(...)
10 React +[RCTJSThreadManager runRunLoop]
(hermesvm loaded; New Architecture / bridgeless)
```
Did not help: forcing Hermes bytecode (
--hermes on), splittingbundle+push, cleaning the output dir, and 10.4.1 → 10.4.2. A different CodePush client applies OTA updates fine on the same bridgeless RN 0.83 build, so this looks specific to this SDK's bridgeless bundle-load/restart path on iOS. Note the New-Arch fixes here so far look Android-focused; is there an equivalent iOS bridgeless bundle-reload path? Likely related: codemagic #28 and #55.Environment