From 5cc64fc41d9ff03395f4bcfba87c8313e8ecbe47 Mon Sep 17 00:00:00 2001 From: Antonis Lilis Date: Wed, 18 Mar 2026 13:38:14 +0100 Subject: [PATCH 1/2] feat(android): Expose enableAnrFingerprinting option Allows React Native users to opt out of the default-on ANR fingerprinting behavior introduced in Android SDK 8.35.0, which groups ANR events with system-only stacktraces into a single issue. Fixes #5837 Co-Authored-By: Claude Sonnet 4.6 --- CHANGELOG.md | 3 ++- .../main/java/io/sentry/react/RNSentryStart.java | 3 +++ packages/core/src/js/options.ts | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 99ee087da3..3dddfe844b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,8 @@ - Add `expoUpdatesListenerIntegration` that records breadcrumbs for Expo Updates lifecycle events ([#5795](https://github.com/getsentry/sentry-react-native/pull/5795)) - Tracks update checks, downloads, errors, rollbacks, and restarts as `expo.updates` breadcrumbs - Enabled by default in Expo apps (requires `expo-updates` to be installed) - - +- feat(android): Expose `enableAnrFingerprinting` option ([#5837](https://github.com/getsentry/sentry-react-native/issues/5837)) + ### Fixes - Fix native frames measurements being dropped due to race condition ([#5813](https://github.com/getsentry/sentry-react-native/pull/5813)) diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java index b2709fb9f4..77851bf83b 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryStart.java @@ -151,6 +151,9 @@ static void getSentryAndroidOptions( if (rnOptions.hasKey("enableTombstone")) { options.setTombstoneEnabled(rnOptions.getBoolean("enableTombstone")); } + if (rnOptions.hasKey("enableAnrFingerprinting")) { + options.setEnableAnrFingerprinting(rnOptions.getBoolean("enableAnrFingerprinting")); + } if (rnOptions.hasKey("spotlight")) { if (rnOptions.getType("spotlight") == ReadableType.Boolean) { options.setEnableSpotlight(rnOptions.getBoolean("spotlight")); diff --git a/packages/core/src/js/options.ts b/packages/core/src/js/options.ts index 91f843291b..e353c33559 100644 --- a/packages/core/src/js/options.ts +++ b/packages/core/src/js/options.ts @@ -73,6 +73,19 @@ export interface BaseReactNativeOptions { */ enableNdkScopeSync?: boolean; + /** + * When enabled, ANR events whose stacktraces contain only system frames + * (e.g. `java.lang`, `android.os`) are assigned a static fingerprint and + * grouped into a single issue instead of creating many separate issues. + * + * Enabled by default in the Android SDK since v8.35.0. + * Set to `false` to restore per-stacktrace ANR grouping. + * + * @default true + * @platform android + */ + enableAnrFingerprinting?: boolean; + /** * When enabled, all the threads are automatically attached to all logged events on Android * From dc83f406620b65dab18275f0444433d3ea1a0ca4 Mon Sep 17 00:00:00 2001 From: Antonis Lilis Date: Wed, 18 Mar 2026 15:50:46 +0100 Subject: [PATCH 2/2] Update changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3dddfe844b..9323410707 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ - Add `expoUpdatesListenerIntegration` that records breadcrumbs for Expo Updates lifecycle events ([#5795](https://github.com/getsentry/sentry-react-native/pull/5795)) - Tracks update checks, downloads, errors, rollbacks, and restarts as `expo.updates` breadcrumbs - Enabled by default in Expo apps (requires `expo-updates` to be installed) -- feat(android): Expose `enableAnrFingerprinting` option ([#5837](https://github.com/getsentry/sentry-react-native/issues/5837)) +- feat(android): Expose `enableAnrFingerprinting` option ([#5838](https://github.com/getsentry/sentry-react-native/issues/5838)) ### Fixes