You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Session Replay: VerifyError in ComposeViewHierarchyNode (androidx.compose.ui.geometry.Rect) under DexGuard/R8 obfuscation #5497
Release build with aggressive obfuscation (DexGuard / R8 full mode).
Launch the app; Replay captures the first Compose screen.
Expected Result
Replay captures the Compose screen without crashing.
Actual Result
Fatal VerifyError at class load when Replay traverses the Compose tree: java.lang.VerifyError: Verifier rejected class io.sentry.android.replay.viewhierarchy.<obf>: ... <m>(androidx.compose.ui.node.LayoutNode, <obf>, int, boolean, io.sentry.SentryOptions) failed to verify: [0x65] 'this' argument 'Unresolved Reference: androidx.compose.ui.geometry.Rect' not instance of 'Reference: <obf>' at io.sentry.android.replay.util.ViewsKt.traverse(Views.kt:36) at io.sentry.android.replay.screenshot.PixelCopyStrategy...onPixelCopyFinished(...) at android.view.PixelCopy$1.lambda$onCopyFinished$0(PixelCopy.java:193)
Deobfuscated, the rejected method maps to ComposeViewHierarchyNode.fromComposeNode(...).
What I've found so far:
fromComposeNode → boundsInWindow() (util/Nodes.kt) → localBoundingBoxOf(...), which returns androidx.compose.ui.geometry.Rect, the type the verifier reports as unresolved.
Our best guess is that this Compose type reference isn't surviving the app's obfuscation, so ART can't verify the class and rejects it at load. We haven't confirmed the exact mechanism — sharing it in case it's familiar to you.
Note on upgrading: The boundsInWindow → localBoundingBoxOf → Rect reference is still present on main/8.43.0, and sentry-android-replay/proguard-rules.pro doesn't appear to keep the Compose geometry/layout/node classes, so upgrading alone may not resolve it. Flagging in case a keep-rule or guarding change is needed; we'll defer to you on the right fix.
Activity
linear-code commentedon Jun 4, 2026
JAVA-546
fix(replay): Fix VerifyError in Compose masking under DexGuard/R8 obf…
github-actions commentedon Jun 10, 2026
A PR closing this issue has just been released 🚀
This issue was referenced by PR #5507, which was included in the 8.43.2 release.
fix(replay): Fix VerifyError in Compose masking under DexGuard/R8 obf…