Crash on startup for one user

  1. SDK Version: 35
  2. Platforms(Android/iOS/web/all): iOS 13.5.1

I have one user (of several thousand) who is experiencing a crash when starting my app. I am able to log into her account on a test device, so it appears the root cause is something on her device.

The customer has deleted the app and reinstalled and hard reset her device.

The app crashes at the splash screen before we can get any errors from sentry and before the user can log into their account.

Any ideas for the next steps to try?

Thanks!

Hi there! You can use the “Crashes organizer” to view exception information: https://help.apple.com/xcode/mac/current/#/dev861f46ea8

Note that the user will have an option enabled to share crash report information for it to show up there, you can ask them to double check as per these instructions: https://help.apple.com/xcode/mac/current/#/deve2819c518. Alternatively, you can have them download your app from TestFlight, where all exceptions will be reported.

I’d be curious to hear what you find.

@notbrent Thanks for pointing that out.

Here’s what I see. I believe this is the crash.

Any ideas?

here’s a bit more detail:

The reported errors seem to come up for various reasons for different users. In many cases affecting all users / being easily reproducible. Being that this is only affecting 1 user, is there anything in the report that I should focus on?

Incident Identifier: BAF179C3-5C5F-47B8-AD04-7AFC1B50C063
CrashReporter Key:   1367b88e5fb861da86d6e6e1162443c02fb823ee
Hardware Model:      iPhone9,1
Process:             ComAppName [12586]
Path:                /private/var/containers/Bundle/Application/D55BD32E-8C3A-4573-945C-C74388BA0B85/ExpoKitApp.app/ComAppName
Identifier:          com.AppName
Version:             4 (1.6.0)
AppStoreTools:       11C29
AppVariant:          1:iPhone9,1:13
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.AppName [3044]


Date/Time:           2020-06-04 16:35:31.5580 -0600
Launch Time:         2020-06-04 16:35:27.7009 -0600
OS Version:          iPhone OS 13.5 (17F75)
Release Type:        User
Baseband Version:    7.60.01
Report Version:      104

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0

Last Exception Backtrace:
0   CoreFoundation                	0x19f7d1794 __exceptionPreprocess + 224 (NSException.m:199)
1   libobjc.A.dylib               	0x19f4f3bcc objc_exception_throw + 56 (objc-exception.mm:565)
2   ComAppName				       	0x102b29f74 -[EXAppViewController maybeShowError:] + 1148 (EXAppViewController.m:127)
3   ComAppName				       	0x102b49ec0 handleFatalReactError_block_invoke_2 + 556 (EXReactAppExceptionHandler.m:27)
4   libdispatch.dylib             	0x19f497524 _dispatch_client_callout + 16 (object.m:495)
5   libdispatch.dylib             	0x19f44a180 _dispatch_async_and_wait_invoke + 92 (queue.c:1536)
6   libdispatch.dylib             	0x19f497524 _dispatch_client_callout + 16 (object.m:495)
7   libdispatch.dylib             	0x19f4495b4 _dispatch_main_queue_callback_4CF$VARIANT$mp + 904 (inline_internal.h:2484)
8   CoreFoundation                	0x19f74f7fc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1749)
9   CoreFoundation                	0x19f74a6d0 __CFRunLoopRun + 1724 (CFRunLoop.c:3069)
10  CoreFoundation                	0x19f749ce8 CFRunLoopRunSpecific + 424 (CFRunLoop.c:3192)
11  GraphicsServices              	0x1a989438c GSEventRunModal + 160 (GSEvent.c:2246)
12  UIKitCore                     	0x1a3878444 UIApplicationMain + 1932 (UIApplication.m:4823)
13  ComAppName				       	0x10297c658 main + 88 (main.m:8)
14  libdyld.dylib                 	0x19f5d18f0 start + 4

Thread 0 name:
Thread 0 Crashed:
0   libsystem_kernel.dylib        	0x000000019f5c6d88 __pthread_kill + 8
1   libsystem_pthread.dylib       	0x000000019f4df1e8 pthread_kill$VARIANT$mp + 136 (pthread.c:1458)
2   libsystem_c.dylib             	0x000000019f4329b0 __abort + 112 (abort.c:147)
3   libsystem_c.dylib             	0x000000019f432940 abort + 112 (abort.c:118)
4   libc++abi.dylib               	0x000000019f59acc0 abort_message + 128 (abort_message.cpp:76)
5   libc++abi.dylib               	0x000000019f58ce10 demangling_terminate_handler() + 296 (cxa_default_handlers.cpp:65)
6   libobjc.A.dylib               	0x000000019f4f3e80 _objc_terminate() + 124 (objc-exception.mm:701)
7   libc++abi.dylib               	0x000000019f59a14c std::__terminate(void (*)()) + 16 (cxa_handlers.cpp:59)
8   libc++abi.dylib               	0x000000019f59a0e4 std::terminate() + 44 (cxa_handlers.cpp:88)
9   libdispatch.dylib             	0x000000019f497538 _dispatch_client_callout + 36 (object.m:498)
10  libdispatch.dylib             	0x000000019f44a180 _dispatch_async_and_wait_invoke + 92 (queue.c:1536)
11  libdispatch.dylib             	0x000000019f497524 _dispatch_client_callout + 16 (object.m:495)
12  libdispatch.dylib             	0x000000019f4495b4 _dispatch_main_queue_callback_4CF$VARIANT$mp + 904 (inline_internal.h:2484)
13  CoreFoundation                	0x000000019f74f7fc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12 (CFRunLoop.c:1749)
14  CoreFoundation                	0x000000019f74a6d0 __CFRunLoopRun + 1724 (CFRunLoop.c:3069)
15  CoreFoundation                	0x000000019f749ce8 CFRunLoopRunSpecific + 424 (CFRunLoop.c:3192)
16  GraphicsServices              	0x00000001a989438c GSEventRunModal + 160 (GSEvent.c:2246)
17  UIKitCore                     	0x00000001a3878444 UIApplicationMain + 1932 (UIApplication.m:4823)
18  ComAppName				       	0x000000010297c658 main + 88 (main.m:8)
19  libdyld.dylib                 	0x000000019f5d18f0 start + 4

Thread 1 name:
Thread 1:
0   libsystem_kernel.dylib        	0x000000019f5c777c __ulock_wait + 8
1   libdispatch.dylib             	0x000000019f43e0a8 _dlock_wait + 52 (lock.c:324)
2   libdispatch.dylib             	0x000000019f43de84 _dispatch_thread_event_wait_slow$VARIANT$mp + 52 (lock.c:364)
3   libdispatch.dylib             	0x000000019f44a34c __DISPATCH_WAIT_FOR_QUEUE__ + 320 (lock.h:330)
4   libdispatch.dylib             	0x000000019f449f6c _dispatch_sync_f_slow + 140 (queue.c:1732)
5   ComAppName				      	0x0000000102b5e6b0 +[EXUtil performSynchronouslyOnMainThread:] + 80 (EXUtil.m:38)
6   ComAppName				     	0x0000000102b49c70 handleFatalReactError_block_invoke + 116 (EXReactAppExceptionHandler.m:16)
7   ComAppName				       	0x0000000102d0d2bc RCTFatal + 136 (RCTAssert.m:126)
8   ComAppName				       	0x0000000102d4333c -[RCTExceptionsManager reportFatalException:stack:exceptionId:] + 460 (RCTExceptionsManager.m:58)
9   CoreFoundation                	0x000000019f7d7970 __invoking___ + 144
10  CoreFoundation                	0x000000019f6a8bb0 -[NSInvocation invoke] + 300 (NSForwarding.m:3312)
11  CoreFoundation                	0x000000019f6a9788 -[NSInvocation invokeWithTarget:] + 76 (NSForwarding.m:3418)
12  ComAppName				       	0x0000000102d6b860 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 460 (RCTModuleMethod.mm:551)
13  ComAppName				       	0x0000000102d720cc facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&) + 248 (RCTNativeModule.mm:104)
14  ComAppName				       	0x0000000102d71e2c invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dy... + 88 (RCTNativeModule.mm:71)
15  libdispatch.dylib             	0x000000019f4969a8 _dispatch_call_block_and_release + 24 (init.c:1408)
16  libdispatch.dylib             	0x000000019f497524 _dispatch_client_callout + 16 (object.m:495)
17  libdispatch.dylib             	0x000000019f4438a4 _dispatch_lane_serial_drain$VARIANT$mp + 608 (inline_internal.h:2484)
18  libdispatch.dylib             	0x000000019f444294 _dispatch_lane_invoke$VARIANT$mp + 416 (queue.c:3863)
19  libdispatch.dylib             	0x000000019f44d78c _dispatch_workloop_worker_thread + 588 (queue.c:6445)
20  libsystem_pthread.dylib       	0x000000019f4e8b74 _pthread_wqthread + 272 (pthread.c:2351)
21  libsystem_pthread.dylib       	0x000000019f4eb740 start_wqthread + 8

edit: added in more crash report details, including thread 1 that has more info.

the main thing to note here is handleFatalReactError - which means that there is a fatal error on the javascript side, ie: in your application code :slight_smile:

Thanks. Where I’m stuck is that I have one customer out of several thousand users who is experiencing this crash.

  • I have no other customers reporting this issue
  • There are no other crash reports from Apple
  • This does not occur on any of our test devices, even when logged in to the affected user’s account

Is there a chance this could be something with the user’s phone? Anything else I should have her try to see if it resolves the error?

Suggestions about how we might tackle the debug on this one? Perhaps based on anything else you see in the crash report.

Any insights you can provide are very much appreciated.

hi there, i’m sorry i’m not really sure how to proceed here. you could try creating a unique build for that user and pushing it to testflight, and point that build to a release channel named something like debugging and remove everything in your app so it just renders some text. have them try opening it and see if it crashes. if it doesn’t, then add back more of your app piece by piece until it crashes again (publish each time, you may want to use "fallbackToCacheTimeout": "30000" so it waits up to 30 seconds when opening the app before launching to fetch the latest version).

this isn’t great and ideally we’d be able to provide more info here, there is currently a bit of a gap in managed apps error reporting where if the js is unable to run due to a fatal error, you won’t get much useful info in the crashes organizer and we don’t have any info about the fatal error available.

Thanks @notbrent

If I’m able to get this customer’s phone in my hands, do you think I’d be able to get anything useful regarding this fatal error from the console logs (or something else)? Do you have any recommendations for what I could do to debug (other than what you’ve recommended with custom builds) if I was able to get this specific device in my hands? Thanks!