Open sindresorhus opened 1 year ago
It looks like the crash happens here https://github.com/getsentry/sentry-cocoa/blob/3b2f6027812abea089dea822726c1be86d3d612b/Sources/Sentry/SentryBreadcrumb.m#L33
@sindresorhus, do you manually add breadcrumbs that set something to SentryBreadcrumb.data
?
Here's my function:
func addBreadcrumb(
_ message: String,
data: [String: Any]? = nil
) {
let breadcrumb = Breadcrumb(level: .info, category: "app.ss")
breadcrumb.message = message
if let data {
breadcrumb.data = data
}
SentrySDK.addBreadcrumb(crumb: breadcrumb)
}
Thanks for the update, @sindresorhus. What do you put into data
?
We need to check why we get Attempted to dereference garbage pointer 0xdeadbeef.
when serializing the data.
SSApp.addBreadcrumb(
"Opening URLs",
data: [
"app": bundleIdentifier, // BundleIdentifier
"schemes": urls.map(\.scheme), // [String]
"lastOpenedDate": lastOpenedDate // Date
]
)
struct BundleIdentifier: RawRepresentable, Hashable {
let rawValue: String
}
extension BundleIdentifier: ExpressibleByStringLiteral {
init(stringLiteral value: String) {
self.init(rawValue: value)
}
}
extension BundleIdentifier: Codable {
public init(from decoder: Decoder) throws {
let container = try decoder.singleValueContainer()
self.rawValue = try container.decode(String.self)
}
public func encode(to encoder: Encoder) throws {
var container = encoder.singleValueContainer()
try container.encode(rawValue)
}
}
Thanks for the update, @sindresorhus. I (and also @armcknight 😀) wonder why we are using strong
instead of copy
for this property on SentryBreadcrumb: @property (nonatomic, strong) NSDictionary<NSString *, id> *_Nullable data;
Anyways, we should better safeguard how we treat data in the data
property. @armcknight, please add your ideas below as a comment.
👋 Hi there! Our app has also started experiencing a crash when calling addBreadcrumb
as soon as we started using it. The stacktrace looks slightly different but I could be related. I was asked to append to this issue instead of creating a new one, but happy to do so if required.
iOS
Production, TestFlight
Swift Package Manager
8.33.0
15.1
Cannot reproduce. Multiple crashes from users since we started adding breadcrumbs.
I expected the Sentry SDK to never crash my app.
Crash log:
Incident Identifier: 5098945D-4FD6-4A2E-B2A7-508C005EEE57
Distributor ID: com.apple.TestFlight
Hardware Model: iPhone16,1
Process: Redacted [98382]
Path: /private/var/containers/Bundle/Application/A5C12785-EC27-3DFA-A285-0C61CE41E0C6/Redacted.app/Redacted
Identifier: com.redacted
Version: 5.89.0 (5890053)
AppStoreTools: 15F31e
AppVariant: 1:iPhone16,1:17.4
Beta: YES
Code Type: ARM-64 (Native)
Role: unknown
Parent Process: launchd [1]
Coalition: com.redacted [7710]
Date/Time: 2024-08-29 00:40:27.5233 +0100
Launch Time: 2024-08-28 23:41:38.6205 +0100
OS Version: iPhone OS 17.5.1 (21F90)
Release Type: User
Baseband Version: 1.60.02
Report Version: 104
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Termination Reason: RUNNINGBOARD 0xdead10cc
Triggered by Thread: 0
Thread 0 name:
Thread 0 Crashed:
0 Redacted 0x00000001084c9a40 sentrycrashjson_beginEncode + 0
1 Redacted 0x00000001084b3564 +[SentryCrashJSONCodec encode:options:error:] + 116
2 Redacted 0x0000000108446568 -[SentryCrashScopeObserver toJSONEncodedCString:] + 76
3 Redacted 0x0000000108446354 -[SentryCrashScopeObserver addSerializedBreadcrumb:] + 16
4 Redacted 0x00000001084af614 -[SentryScope addBreadcrumb:] + 480
5 Redacted 0x000000010847cfd4 -[SentryHub addBreadcrumb:] + 200
6 Redacted 0x00000001084ae0e0 +[SentrySDK addBreadcrumb:] + 60
7 Redacted 0x00000001005c7c98 CrashReporter.sentryAddBreadcrumb(_:level:) + 28 (CrashReporter.swift:83)
8 Redacted 0x00000001005c7c98 specialized CrashReporter.logAndBreadcrumb(message:) + 188 (CrashReporter.swift:49)
9 Redacted 0x00000001053062f4 MultipleObjectsRepository.cache(models:completion:file:line:) + 396
10 Redacted 0x0000000106a12d54 OverviewFrameworkRepository.modifyAndCache(model:updatePrimaryKey:completion:) + 348
11 Redacted 0x0000000103be35d4 closure #1 in AggregatedAccountRepository.fetchAndCacheOverview(reason:trigger:completion:) + 1192 (AggregatedAccountRepository.swift:234)
12 Redacted 0x0000000103d07928 closure #1 in AggregatedAccountService.fetch(userContextID:reason:trigger:syncId:completion:) + 932 (AggregatedAccountService.swift:108)
13 Redacted 0x000000010526a7ec closure #1 in closure #2 in closure #1 in OAuthClient.request<A, B>(_:key:unmarshallingQueue:measurementToProfile:serviceFile:serviceLine:completion:) + 136
14 Redacted 0x000000010141c124 thunk for @escaping @callee_guaranteed () -> () + 28 (<compiler-generated>:0)
15 libdispatch.dylib 0x0000000191bf813c _dispatch_call_block_and_release + 32 (init.c:1530)
16 libdispatch.dylib 0x0000000191bf9dd4 _dispatch_client_callout + 20 (object.m:576)
17 libdispatch.dylib 0x0000000191c085a4 _dispatch_main_queue_drain + 988 (queue.c:7898)
18 libdispatch.dylib 0x0000000191c081b8 _dispatch_main_queue_callback_4CF + 44 (queue.c:8058)
19 CoreFoundation 0x0000000189d27710 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 (CFRunLoop.c:1780)
20 CoreFoundation 0x0000000189d24914 __CFRunLoopRun + 1996 (CFRunLoop.c:3149)
21 CoreFoundation 0x0000000189d23cd8 CFRunLoopRunSpecific + 608 (CFRunLoop.c:3420)
22 GraphicsServices 0x00000001cebd41a8 GSEventRunModal + 164 (GSEvent.c:2196)
23 UIKitCore 0x000000018c35c90c -[UIApplication _run] + 888 (UIApplication.m:3713)
24 UIKitCore 0x000000018c4109d0 UIApplicationMain + 340 (UIApplication.m:5303)
25 Redacted 0x00000001003e8ddc main + 268 (main.swift:20)
26 dyld 0x00000001ad3d5e4c start + 2240 (dyldMain.cpp:1298)
Thread 1 name:
Thread 1:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 libc++.1.dylib 0x000000019a10a598 std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::r... + 100 (condition_variable.cpp:75)
3 StripeTerminal 0x000000010ce020ac void kotlin::RepeatedTimer<kotlin::steady_clock>::Run<kotlin::gcScheduler::internal::GCSchedulerDataAdaptive<kotlin::steady_clock>::GCSchedulerDataAdaptive(kotlin::gcScheduler::GCSchedulerConfig&, ... + 260 (:-1)
4 StripeTerminal 0x000000010ce02334 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(kotlin::ScopedThread::attributes, void ... + 112 (:-1)
5 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
6 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 2 name:
Thread 2:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 libc++.1.dylib 0x000000019a10a504 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (condition_variable.cpp:45)
3 StripeTerminal 0x000000010ce0642c std::__1::invoke_result<kotlin::gc::ConcurrentMarkAndSweep::ConcurrentMarkAndSweep(kotlin::mm::ObjectFactory<kotlin::gc::ConcurrentMarkAndSweep>&, kotlin::mm::ExtraObjectDataFactory&, kotlin::gcSch... + 368 (:-1)
4 StripeTerminal 0x000000010ce080c8 void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, void (*)(kotlin::ScopedThread::attributes, kotli... + 104 (:-1)
5 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
6 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 3:
0 libsystem_kernel.dylib 0x00000001d2e09ab8 read + 8 (:-1)
1 Redacted 0x000000010862c92c runtime.read_trampoline.abi0 + 28
Thread 4:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa710 _pthread_cond_wait + 1272 (pthread_cond.c:862)
2 Redacted 0x000000010862d05c runtime.pthread_cond_timedwait_relative_np_trampoline.abi0 + 28
3 Redacted 0x000000010862b988 runtime.asmcgocall.abi0 + 200
Thread 5:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 Redacted 0x000000010862d028 runtime.pthread_cond_wait_trampoline.abi0 + 24
3 Redacted 0x000000010862b988 runtime.asmcgocall.abi0 + 200
Thread 6:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 Redacted 0x000000010862d028 runtime.pthread_cond_wait_trampoline.abi0 + 24
3 Redacted 0x000000010862b988 runtime.asmcgocall.abi0 + 200
Thread 7:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 Redacted 0x000000010862d028 runtime.pthread_cond_wait_trampoline.abi0 + 24
3 Redacted 0x000000010862b989 runtime.asmcgocall.abi0 + 201
Thread 8:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 Redacted 0x000000010862d028 runtime.pthread_cond_wait_trampoline.abi0 + 24
3 Redacted 0x000000010862b988 runtime.asmcgocall.abi0 + 200
Thread 9 name:
Thread 9:
0 libsystem_kernel.dylib 0x00000001d2e04808 mach_msg2_trap + 8 (:-1)
1 libsystem_kernel.dylib 0x00000001d2e08008 mach_msg2_internal + 80 (mach_msg.c:201)
2 libsystem_kernel.dylib 0x00000001d2e07f20 mach_msg_overwrite + 436 (mach_msg.c:0)
3 libsystem_kernel.dylib 0x00000001d2e07d60 mach_msg + 24 (mach_msg.c:323)
4 CoreFoundation 0x0000000189d24f5c __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2624)
5 CoreFoundation 0x0000000189d24600 __CFRunLoopRun + 1208 (CFRunLoop.c:3007)
6 CoreFoundation 0x0000000189d23cd8 CFRunLoopRunSpecific + 608 (CFRunLoop.c:3420)
7 Foundation 0x0000000188c44e4c -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212 (NSRunLoop.m:373)
8 Foundation 0x0000000188c44c9c -[NSRunLoop(NSRunLoop) runUntilDate:] + 64 (NSRunLoop.m:420)
9 UIKitCore 0x000000018c370640 -[UIEventFetcher threadMain] + 420 (UIEventFetcher.m:1207)
10 Foundation 0x0000000188c5b718 __NSThread__start__ + 732 (NSThread.m:991)
11 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
12 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 10:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 Redacted 0x000000010862d028 runtime.pthread_cond_wait_trampoline.abi0 + 24
3 Redacted 0x000000010862b988 runtime.asmcgocall.abi0 + 200
Thread 11 name:
Thread 11:
0 libsystem_kernel.dylib 0x00000001d2e0b608 kevent + 8 (:-1)
1 Redacted 0x00000001075d4a68 realm::_impl::ExternalCommitHelper::listen() + 160
2 Redacted 0x00000001075d4b64 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, realm::_impl::ExternalCommitHelper:... + 56
3 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
4 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 12:
0 libsystem_kernel.dylib 0x00000001d2e0a3ec __semwait_signal + 8 (:-1)
1 libsystem_c.dylib 0x0000000191c535f0 nanosleep + 220 (nanosleep.c:104)
2 libsystem_c.dylib 0x0000000191cb072c sleep + 52 (sleep.c:62)
3 Redacted 0x000000010849c268 monitorCachedData + 660
4 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
5 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 13 name:
Thread 13:
0 libsystem_kernel.dylib 0x00000001d2e04808 mach_msg2_trap + 8 (:-1)
1 libsystem_kernel.dylib 0x00000001d2e08008 mach_msg2_internal + 80 (mach_msg.c:201)
2 libsystem_kernel.dylib 0x00000001d2e05d78 thread_suspend + 112 (thread_actUser.c:1036)
3 Redacted 0x0000000108482778 handleExceptions + 128
4 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
5 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 14 name:
Thread 14:
0 libsystem_kernel.dylib 0x00000001d2e04808 mach_msg2_trap + 8 (:-1)
1 libsystem_kernel.dylib 0x00000001d2e08008 mach_msg2_internal + 80 (mach_msg.c:201)
2 libsystem_kernel.dylib 0x00000001d2e07f20 mach_msg_overwrite + 436 (mach_msg.c:0)
3 libsystem_kernel.dylib 0x00000001d2e07d60 mach_msg + 24 (mach_msg.c:323)
4 Redacted 0x00000001084827a4 handleExceptions + 172
5 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
6 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 15 name:
Thread 15:
0 libsystem_kernel.dylib 0x00000001d2e0a3ec __semwait_signal + 8 (:-1)
1 libsystem_c.dylib 0x0000000191c535f0 nanosleep + 220 (nanosleep.c:104)
2 Foundation 0x0000000188d97714 +[NSThread sleepForTimeInterval:] + 160 (NSThread.m:527)
3 Redacted 0x0000000108462cc0 -[SentryANRTracker detectANRs] + 556
4 Foundation 0x0000000188c5b718 __NSThread__start__ + 732 (NSThread.m:991)
5 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
6 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 16 name:
Thread 16:
0 libsystem_kernel.dylib 0x00000001d2e04808 mach_msg2_trap + 8 (:-1)
1 libsystem_kernel.dylib 0x00000001d2e08008 mach_msg2_internal + 80 (mach_msg.c:201)
2 libsystem_kernel.dylib 0x00000001d2e07f20 mach_msg_overwrite + 436 (mach_msg.c:0)
3 libsystem_kernel.dylib 0x00000001d2e07d60 mach_msg + 24 (mach_msg.c:323)
4 CoreFoundation 0x0000000189d24f5c __CFRunLoopServiceMachPort + 160 (CFRunLoop.c:2624)
5 CoreFoundation 0x0000000189d24600 __CFRunLoopRun + 1208 (CFRunLoop.c:3007)
6 CoreFoundation 0x0000000189d23cd8 CFRunLoopRunSpecific + 608 (CFRunLoop.c:3420)
7 CFNetwork 0x000000018af04c90 +[__CFN_CoreSchedulingSetRunnable _run:] + 384 (CoreSchedulingSet.mm:1473)
8 Foundation 0x0000000188c5b718 __NSThread__start__ + 732 (NSThread.m:991)
9 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
10 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 17 name:
Thread 17:
0 libsystem_kernel.dylib 0x00000001d2e0479c semaphore_timedwait_trap + 8 (:-1)
1 libdispatch.dylib 0x0000000191bfa3ec _dispatch_sema4_timedwait + 64 (lock.c:154)
2 libdispatch.dylib 0x0000000191bfa9e8 _dispatch_semaphore_wait_slow + 76 (semaphore.c:116)
3 libswiftDispatch.dylib 0x00000001930f457c OS_dispatch_semaphore.wait(wallTimeout:) + 24 (Dispatch.swift:189)
4 Redacted 0x0000000105223374 ExperimentalOverviewModelParsingBackgroundThreadSupportingBackgroundTask.main() + 736
5 Redacted 0x0000000105223674 @objc ExperimentalOverviewModelParsingBackgroundThreadSupportingBackgroundTask.main() + 28
6 Foundation 0x0000000188c5b718 __NSThread__start__ + 732 (NSThread.m:991)
7 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
8 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 18:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 19:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 20:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 21:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 22:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 23:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 24:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 25:
0 libsystem_kernel.dylib 0x00000001d2e0a1cc __psynch_cvwait + 8 (:-1)
1 libsystem_pthread.dylib 0x00000001e6baa6e4 _pthread_cond_wait + 1228 (pthread_cond.c:862)
2 libc++.1.dylib 0x000000019a10a504 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28 (condition_variable.cpp:45)
3 Redacted 0x0000000107563ae0 realm::DB::AsyncCommitHelper::main() + 268
4 Redacted 0x0000000107567868 void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, realm::DB::AsyncCommitHelper::start... + 52
5 libsystem_pthread.dylib 0x00000001e6bad06c _pthread_start + 136 (pthread.c:931)
6 libsystem_pthread.dylib 0x00000001e6ba80d8 thread_start + 8 (:-1)
Thread 26:
0 libsystem_pthread.dylib 0x00000001e6ba80c4 start_wqthread + 0 (:-1)
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x000000016fa19b48 x1: 0x0000000000000000 x2: 0x00000001084b3610 x3: 0x00000003020bc960
x4: 0x0000000000000003 x5: 0x0000000000000c30 x6: 0x0000000302f30c30 x7: 0x000000016fa192f0
x8: 0x00000001eaa4c100 x9: 0x0000000000000008 x10: 0x01000001eaa5f431 x11: 0x00000000a0080001
x12: 0x0000000302f9ccbc x13: 0x00000000001ff800 x14: 0x00000000000007fb x15: 0x00000000e935f0c4
x16: 0x0000000181bcf14c x17: 0x00000000e955e854 x18: 0x0000000000000000 x19: 0x000000016fa19c88
x20: 0x00000003020bc960 x21: 0x0000000000000002 x22: 0x000000010a65b9f8 x23: 0x0000000302cc9100
x24: 0x0000000302fbe120 x25: 0x0000000200000003 x26: 0x0000000000000000 x27: 0x000000000000004f
x28: 0x000000010a7e1dc0 fp: 0x000000016fa19c60 lr: 0x00000001084b3564
sp: 0x000000016fa19b40 pc: 0x00000001084c9a40 cpsr: 0x60001000
esr: 0x82000007 (Instruction Abort) Translation fault
EOF
Hello @monchote, appending to this one is perfect.
Can you share with us if you're adding any extra information in the breadcrumb?
Can you share with us if you're adding any extra information in the breadcrumb?
Thanks @brustolin. This is the function that calls addBreadcrumb
in our codebase:
func sentryAddBreadcrumb(_ message: String, level: SentryLevel) {
let crumb = Breadcrumb()
crumb.level = level
crumb.category = "log"
crumb.message = message
SentrySDK.addBreadcrumb(crumb)
}
Thank you @monchote. We will investigate what is the problem.
@brustolin Do you have an estimation on when we could expect a fix?
We’ve had over 1200 instances of this crash in the last 2 weeks and almost 8000 since we started using breadcrumbs so we may be forced to disable them thus severely reducing the capabilities of Sentry to help us track, reproduce, and fix crashes.
Do you have an estimation on when we could expect a fix?
Unfortunately no. I was unable to reproduce this error yet. We dont know what is wrong it with to be able to fix.
We also see this in our internal SDK crash detection.
Platform
macOS
Installed
Swift Package Manager
Version
7.31.2
Steps to Reproduce
I cannot reproduce. It's a crash report from a user.
Expected Result
I expected the Sentry SDK to never crash my app.
Actual Result
Crash log:
Also viewable at: https://sentry.io/organizations/sindresorhus/issues/3870221461/events/6fa32daaf73d409db9ee5ebe02d3f29c/