diff --git a/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt b/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt index c2ee6f1d8..a49112f42 100644 --- a/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt +++ b/packages/core/RNSentryAndroidTester/app/src/test/java/io/sentry/react/RNSentryStartTest.kt @@ -63,9 +63,9 @@ class RNSentryStartTest { } @Test - fun `the JavascriptException is added to the ignoredExceptionsForType list on initialisation`() { + fun `the JavascriptException is added to the ignoredExceptionsForType list on with react defaults`() { val actualOptions = SentryAndroidOptions() - RNSentryStart.getSentryAndroidOptions(actualOptions, JavaOnlyMap.of(), activity, logger) + RNSentryStart.updateWithReactDefaults(actualOptions) assertTrue(actualOptions.ignoredExceptionsForType.contains(JavascriptException::class.java)) } 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 fba830f06..0fa6f5dc1 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 @@ -194,10 +194,6 @@ static void getSentryAndroidOptions( return breadcrumb; }); - // React native internally throws a JavascriptException. - // we want to ignore it on the native side to avoid sending it twice. - options.addIgnoredExceptionForType(JavascriptException.class); - if (rnOptions.hasKey("enableNativeCrashHandling") && !rnOptions.getBoolean("enableNativeCrashHandling")) { final List integrations = options.getIntegrations(); @@ -224,6 +220,10 @@ static void updateWithReactDefaults(@NotNull SentryAndroidOptions options) { options.setTracesSampleRate(null); options.setTracesSampler(null); options.setEnableTracing(false); + + // React native internally throws a JavascriptException. + // we want to ignore it on the native side to avoid sending it twice. + options.addIgnoredExceptionForType(JavascriptException.class); } /** @@ -234,14 +234,6 @@ static void updateWithReactFinals(@NotNull SentryAndroidOptions options) { BeforeSendCallback userBeforeSend = options.getBeforeSend(); options.setBeforeSend( (event, hint) -> { - // Unhandled JS Exception are processed by the SDK on JS layer - // To avoid duplicates we drop them in the native SDKs - if (event.getExceptions() != null && !event.getExceptions().isEmpty()) { - String exType = event.getExceptions().get(0).getType(); - if (exType != null && exType.contains("Unhandled JS Exception")) { - return null; // Skip sending this event - } - } setEventOriginTag(event); addPackages(event, options.getSdkVersion()); if (userBeforeSend != null) {