help interpreting crash report - EXC_CRASH (SIGKILL)

Hi there, I am seeing an intermittent bug with a React Native app that I have not been able to produce. Have seen it happen on iOS 16.1, 16.2 and 16.3. Attached is a crash report emailed to me by a user.

Any help figuring out what is happening in thread 0 would be appreciated. Symbolicating lines 9, 10 and 46 provides the following additions:

...
9 myApp +[RNSplashScreen show] (in myApp) (RNSplashScreen.m:31)
10 myApp -[AppDelegate application:didFinishLaunchingWithOptions:] (in myApp) (AppDelegate.mm:63)
...
46 myApp main (in myApp) (main.m:8)

Thank you!

What I think are the important bits are here:

Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: FRONTBOARD 2343432205 
<RBSTerminateContext| domain:10 code:0x8BADF00D explanation:scene-create watchdog transgression: application<net.company.dev.myApp>:62816 exhausted real (wall clock) time allowance of 19.96 seconds
ProcessVisibility: Foreground
ProcessState: Running
WatchdogEvent: scene-create
WatchdogVisibility: Foreground
WatchdogCPUStatistics: (
"Elapsed total CPU time (seconds): 26.870 (user 19.240, system 7.630), 22% CPU",
"Elapsed application CPU time (seconds): 9.240, 7% CPU"
) reportType:CrashLog maxTerminationResistance:Interactive>

Triggered by Thread:  0

Thread 0 name:   Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib        	       0x204e84aa8 mach_msg2_trap + 8
1   libsystem_kernel.dylib        	       0x204e96fc4 mach_msg2_internal + 80
2   libsystem_kernel.dylib        	       0x204e97204 mach_msg_overwrite + 388
3   libsystem_kernel.dylib        	       0x204e84fec mach_msg + 24
4   CoreFoundation                	       0x1c758aad4 __CFRunLoopServiceMachPort + 160
5   CoreFoundation                	       0x1c758bd18 __CFRunLoopRun + 1232
6   CoreFoundation                	       0x1c7590ec0 CFRunLoopRunSpecific + 612
7   Foundation                    	       0x1c18cf0d4 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
8   Foundation                    	       0x1c18cefbc -[NSRunLoop(NSRunLoop) runUntilDate:] + 64
9   myApp                         	       0x104e86db4 +[RNSplashScreen show] (in myApp) (RNSplashScreen.m:31)
10  myApp                         	       0x1049ec204 -[AppDelegate application:didFinishLaunchingWithOptions:] (in myApp) (AppDelegate.mm:63)
11  UIKitCore                     	       0x1c9a3ec54 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 300
12  UIKitCore                     	       0x1c9a3e378 -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] + 2848
13  UIKitCore                     	       0x1c9a3d354 -[UIApplication _runWithMainScene:transitionContext:completion:] + 856
14  UIKitCore                     	       0x1c9a3cfa0 -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] + 132
15  UIKitCore                     	       0x1c978320c _UIScenePerformActionsWithLifecycleActionMask + 108
16  UIKitCore                     	       0x1c9ac4e98 __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke + 216
17  UIKitCore                     	       0x1c9975ce0 -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 220
18  UIKitCore                     	       0x1c9975b08 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 620
19  UIKitCore                     	       0x1c99756b8 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 252
20  UIKitCore                     	       0x1c9975584 __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 148
21  UIKitCore                     	       0x1ca0592b8 +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:fromCurrentState:actions:completion:] + 736
22  UIKitCore                     	       0x1ca0f2a8c _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion + 224
23  UIKitCore                     	       0x1c982158c -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 316
24  UIKitCore                     	       0x1c9c94184 __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.214 + 556
25  UIKitCore                     	       0x1c98f3bb8 -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 216
26  UIKitCore                     	       0x1c98f3a28 -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 244
27  UIKitCore                     	       0x1c98f2f7c -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] + 520
28  UIKitCore                     	       0x1c98f2d08 -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] + 288
29  FrontBoardServices            	       0x1dd240e90 -[FBSScene _callOutQueue_agent_didCreateWithTransitionContext:completion:] + 344
30  FrontBoardServices            	       0x1dd2808f8 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke.78 + 120
31  FrontBoardServices            	       0x1dd244c24 -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 168
32  FrontBoardServices            	       0x1dd280530 __92-[FBSWorkspaceScenesClient createSceneWithIdentity:parameters:transitionContext:completion:]_block_invoke + 360
33  libdispatch.dylib             	       0x1ceb2cfdc _dispatch_client_callout + 20
34  libdispatch.dylib             	       0x1ceb30a5c _dispatch_block_invoke_direct + 264
35  FrontBoardServices            	       0x1dd24ed40 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 52
36  FrontBoardServices            	       0x1dd24e8dc -[FBSSerialQueue _targetQueue_performNextIfPossible] + 220
37  FrontBoardServices            	       0x1dd251184 -[FBSSerialQueue _performNextFromRunLoopSource] + 28
38  CoreFoundation                	       0x1c75e5f34 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
39  CoreFoundation                	       0x1c75f230c __CFRunLoopDoSource0 + 176
40  CoreFoundation                	       0x1c7576230 __CFRunLoopDoSources0 + 340
41  CoreFoundation                	       0x1c758bb8c __CFRunLoopRun + 836
42  CoreFoundation                	       0x1c7590ec0 CFRunLoopRunSpecific + 612
43  GraphicsServices              	       0x2015e7368 GSEventRunModal + 164
44  UIKitCore                     	       0x1c9a8686c -[UIApplication _run] + 888
45  UIKitCore                     	       0x1c9a864d0 UIApplicationMain + 340
46  myApp                         	       0x1049ec40c 0x1049e4000 + 33804
47  dyld                          	       0x1e5db2960 main (in myApp) (main.m:8)

Correction. Lines 46 and 47 are as follows:

46  myApp                         	    0x1e5db2960 main (in myApp) (main.m:8)
47  dyld                          	       0x1e5db2960 start + 2528
Accepted Answer

Frames 9 and 8 are a bit of a worry. It suggests that your third-party runtime is displaying UI, a splash screen, and then running the run loop for some reason. That’s really not a good idea with UIKit [1]. It seems that something in that code has failed and so your app is stuck in the run loop. Eventually the watchdog noticed this and killed your app with 0x8BADF00D (“ate bad food”).


Taking a step back, iOS apps are not meant to show splash screens — it’s generally considered poor form from a UI perspective — and thus I recommend that you ask your runtime vendor whether it’s possible to disable this code entirely.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] This sort of thing is supported on macOS, which has ancient support for modal alerts.

Thank you! I appreciate your response. Indeed, the problem was caused by code in our React Native app resulting in an infinite loop.

help interpreting crash report - EXC_CRASH (SIGKILL)
 
 
Q