Skip to content

ThreadDumpParser emits module null.<Class> for default-package classes, breaking ProGuard symbolication of ANR events #5968

Description

@eygraber

Integration

sentry-android

Build System

Gradle

AGP Version

9.3.1

Proguard

Enabled

Other Error Monitoring Solution

Firebase Crashlytics

Version

8.53.0

Steps to Reproduce

  1. Build a release app minified by R8 with default settings, so most classes are repackaged into the default (root) package (e.g. class sf2 with no package).
  2. Upload the ProGuard mapping; confirm the event association works (the event's debug_meta contains the mapping's proguard UUID).
  3. Enable ANR reporting via AnrV2Integration (AppExitInfo).
  4. Trigger an ANR so the OS records a thread dump, then relaunch the app so the SDK parses the dump and sends the ANR event.

Expected Result

Frames for default-package classes carry module = "sf2", matching the mapping's key, so server-side ProGuard symbolication deobfuscates them.

Actual Result

Frames carry the literal string module = "null.sf2", symbolication looks up null.sf2 in a mapping keyed by sf2, misses, and every app frame in the event stays obfuscated even though the correct mapping is uploaded and referenced. Culprits render as e.g. null.mz3 in K.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status
    Waiting for: Product Owner

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions