diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a48c1a327..925c1c2cef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Fixes + +- Handle native NDK init failure by checking return code and throwing an IllegalStateException to disable NDK integration early. This prevents the SDK from assuming a successful NDK initialization when the underlying native init failed. + ### Dependencies - Bump Native SDK from v0.11.2 to v0.11.3 ([#4810](https://github.com/getsentry/sentry-java/pull/4810)) diff --git a/sentry-android-ndk/src/main/java/io/sentry/android/ndk/SentryNdk.java b/sentry-android-ndk/src/main/java/io/sentry/android/ndk/SentryNdk.java index 9d6d64a123..c45309c690 100644 --- a/sentry-android-ndk/src/main/java/io/sentry/android/ndk/SentryNdk.java +++ b/sentry-android-ndk/src/main/java/io/sentry/android/ndk/SentryNdk.java @@ -74,7 +74,11 @@ public static void init(@NotNull final SentryAndroidOptions options) { } //noinspection UnstableApiUsage - io.sentry.ndk.SentryNdk.init(ndkOptions); + final int initResult = io.sentry.ndk.SentryNdk.init(ndkOptions); + if (initResult != 0) { + throw new IllegalStateException( + "Failed to initialize Sentry NDK. Native init returned code " + initResult); + } // only add scope sync observer if the scope sync is enabled. if (options.isEnableScopeSync()) {