diff --git a/packages/react-native/React/CoreModules/RCTRedBox2Controller.mm b/packages/react-native/React/CoreModules/RCTRedBox2Controller.mm index 1040e797562a..04a10a67219c 100644 --- a/packages/react-native/React/CoreModules/RCTRedBox2Controller.mm +++ b/packages/react-native/React/CoreModules/RCTRedBox2Controller.mm @@ -373,6 +373,12 @@ - (void)stopAutoRetry - (void)autoRetryTick { + // Don't reload while backgrounded: it re-inits TurboModules, and a + // requiresMainQueueSetup module dispatch_syncs onto the blocked main queue, + // deadlocking until the watchdog kills the app. + if (RCTSharedApplication().applicationState != UIApplicationStateActive) { + return; + } _autoRetryCountdown--; if (_autoRetryCountdown <= 0) { [self stopAutoRetry];