Skip to content

Crashlytics fatal is reported as "(anonymous namespace)::ExceptionObjHolderImpl" instead of Kotlin exception on iOS #51

Description

@redelg

Summary

On iOS, unhandled Kotlin crashes are reported in Firebase Crashlytics as:

Fatal Exception: (anonymous namespace)::ExceptionObjHolderImpl

instead of showing the Kotlin exception as the main fatal cause.

Environment

  • Device: iPhone 16 Pro Max
  • iOS: 26.2.1
  • Kotlin: 2.3.10
  • Compose Multiplatform: 1.9.3
  • Firebase iOS SDK (SPM): 12.9.0
  • NSExceptionKt Crashlytics reporter (SPM)
  • nsexception-kt-core: 1.0.7

Configuration

FirebaseApp.configure()
NSExceptionKt.addReporter(.crashlytics(causedByStrategy: .append))

Steps to Reproduce

  1. Launch the iOS app.
  2. Trigger a Kotlin test crash from the app UI.
  3. Wait for the crash to appear in Firebase Crashlytics.
  4. Open the crash event details.

Expected Result

Crashlytics fatal should identify the Kotlin exception origin/class as the main crash cause.

Actual Result

Crashlytics fatal is still reported as:

Fatal Exception: (anonymous namespace)::ExceptionObjHolderImpl

Kotlin frames and Kotlin stacktrace logs are present, but the fatal classification remains generic.

Stack Trace (excerpt)

Fatal Exception: (anonymous namespace)::ExceptionObjHolderImpl
Crashed: com.google.firebase.crashlytics.ios.exception
...
FIRCLSExceptionRecordNSException
CrashlyticsNSExceptionKtReporter.reportException(_:)
kfun:com.rickclephas.kmp.nsexceptionkt.core.addReporter...
kfun:com.rickclephas.kmp.nsexceptionkt.core.wrapUnhandledExceptionHook...
kfun:androidx.compose.ui.scene.BaseComposeScene#sendPointerEvent...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions