diff --git a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm index b36c819cca85..47bb1d1ea65f 100644 --- a/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm +++ b/packages/react-native/ReactCommon/react/nativemodule/core/platform/ios/ReactCommon/RCTTurboModule.mm @@ -461,7 +461,13 @@ TraceSection s( @try { [inv invokeWithTarget:strongModule]; } @catch (NSException *exception) { - throw convertNSExceptionToJSError(runtime, exception, std::string{moduleName}, methodNameStr); + // Cannot rethrow C++ exceptions from async dispatch - nothing can catch them. + // Log the error for debugging purposes instead of crashing. + RCTLogError( + @"Exception thrown while invoking async method %s.%s: %@", + moduleName, + methodNameStr.c_str(), + exception); } @finally { [retainedObjectsForInvocation removeAllObjects]; }