Update dependency io.sentry:sentry to v8.41.0 - autoclosed #15

Closed
renovate-bot wants to merge 1 commits from renovate/io.sentry-sentry-8.x into main
pull from: renovate/io.sentry-sentry-8.x
Collaborator

This PR contains the following updates:

Package Change Age Confidence
io.sentry:sentry 8.25.0 → 8.41.0 age confidence

⚠️ Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

getsentry/sentry-java (io.sentry:sentry)

v8.41.0

Compare Source

Features
  • Session Replay: experimental support for capturing SurfaceView content (e.g. Unity, video players, maps) (#​5333)
    • To enable, set options.sessionReplay.isCaptureSurfaceViews = true
    • Or via manifest: <meta-data android:name="io.sentry.session-replay.capture-surface-views" android:value="true" />
    • Warning: masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record.
  • Add Sentry.feedback() API for show() and capture() (#​5349)
    • Sentry.showUserFeedbackDialog() is deprecated in favor of Sentry.feedback().show()
    • Sentry.captureFeedback() is deprecated in favor of Sentry.feedback().capture()
    • Sentry.captureUserFeedback() and UserFeedback are deprecated in favor of Sentry.feedback().capture() with the new Feedback type
    • SentryUserFeedbackDialog is deprecated in favor of SentryUserFeedbackForm
    • All deprecated APIs will be removed in the next major version
  • Deprecate SentryUserFeedbackButton (View-based and Compose-based) (#​5350)
    • It will be removed in the next major version
  • Add per-form shake-to-show support for SentryUserFeedbackForm (#​5353)
    • Useful for enabling shake-to-report on specific screens instead of globally
    SentryUserFeedbackForm.Builder(activity)
      .configurator { it.isUseShakeGesture = true }
      .create()
    
  • Add support for Kafka (#​5249)
    • You will need to add the sentry-kafka dependency and opt-in via the new option.
      • Set options.setEnableQueueTracing(true) on Sentry.init
      • Or set sentry.enable-queue-tracing=true in application.properties
    • For Spring Boot Kafka is auto instrumented and no further configuration is needed.
    • When using kafka-clients directly
Fixes
  • Fix soft input keyboard not being shown on the Feedback form (#​5359)
  • Fix shake-to-report not triggering on some devices due to high acceleration threshold (#​5366)
  • Fix feedback form retaining previous message when shown again via shake (#​5366)
  • Avoid stack overflow when deserializing large flat JSON objects (#​5361)
Dependencies

v8.40.0

Compare Source

Fixes
  • Fix NoSuchMethodError for LayoutCoordinates.localBoundingBoxOf$default on Compose touch dispatch with AGP 8.13 and minSdk < 24 (#​5302)
  • Fix reporting OkHttp's synthetic 504 "Unsatisfiable Request" responses as errors for CacheControl.FORCE_CACHE cache misses (#​5299)
  • Make SentryGestureDetector thread-safe and recycle VelocityTracker per gesture (#​5301)
  • Fix duplicate ui.click breadcrumbs when another Window.Callback wraps SentryWindowCallback (#​5300)
Dependencies

v8.39.1

Compare Source

Fixes
  • Fix JsonObjectReader and MapObjectReader hanging indefinitely when deserialization errors leave the reader in an inconsistent state (#​5293)
    • Failed collection values are now skipped so parsing can continue
    • Skipped collection values emit WARNING logs
    • Unknown-key failures and unrecoverable recovery failures emit ERROR logs

v8.39.0

Compare Source

Fixes
  • Fix ANR caused by GestureDetectorCompat Handler/MessageQueue lock contention in SentryWindowCallback (#​5138)
Internal
  • Bump AGP version from v8.6.0 to v8.13.1 (#​5063)
Dependencies

v8.38.0

Compare Source

Features
  • Prevent cross-organization trace continuation (#​5136)
    • By default, the SDK now extracts the organization ID from the DSN (e.g. o123.ingest.sentry.io) and compares it with the sentry-org_id value in incoming baggage headers. When the two differ, the SDK starts a fresh trace instead of continuing the foreign one. This guards against accidentally linking traces across organizations.
    • New option enableStrictTraceContinuation (default false): when enabled, both the SDK's org ID and the incoming baggage org ID must be present and match for a trace to be continued. Traces with a missing org ID on either side are rejected. Configurable via code (setStrictTraceContinuation(true)), sentry.properties (enable-strict-trace-continuation=true), Android manifest (io.sentry.strict-trace-continuation.enabled), or Spring Boot (sentry.strict-trace-continuation=true).
    • New option orgId: allows explicitly setting the organization ID for self-hosted and Relay setups where it cannot be extracted from the DSN. Configurable via code (setOrgId("123")), sentry.properties (org-id=123), Android manifest (io.sentry.org-id), or Spring Boot (sentry.org-id=123).
  • Android: Attachments on the scope will now be synced to native (#​5211)
  • Add THIRD_PARTY_NOTICES.md for vendored third-party code, bundled as SENTRY_THIRD_PARTY_NOTICES.md in the sentry JAR under META-INF (#​5186)
Improvements
  • Do not retrieve ActivityManager if API < 35 on SDK init (#​5275)

v8.37.1

Compare Source

Fixes
  • Fix deadlock in SentryContextStorage.root() with virtual threads and OpenTelemetry agent (#​5234)

v8.37.0

Compare Source

Fixes
  • Session Replay: Fix Compose text masking mismatch with weighted text (#​5218)
Features
  • Add cache tracing instrumentation for Spring Boot 2, 3, and 4 (#​5165)
    • Wraps Spring CacheManager and Cache beans to produce cache spans
    • Set sentry.enable-cache-tracing to true to enable this feature
  • Add JCache (JSR-107) cache tracing via new sentry-jcache module (#​5165)
    • Wraps JCache Cache with SentryJCacheWrapper to produce cache spans
    • Set the enableCacheTracing option to true to enable this feature
  • Add configurable IScopesStorageFactory to SentryOptions for providing a custom IScopesStorage, e.g. when the default ThreadLocal-backed storage is incompatible with non-pinning thread models (#​5199)
  • Android: Add beforeErrorSampling callback to Session Replay (#​5214)
    • Allows filtering which errors trigger replay capture before the onErrorSampleRate is checked
    • Returning false skips replay capture entirely for that error; returning true proceeds with the normal sample rate check
    • Example usage:
      SentryAndroid.init(context) { options ->
          options.sessionReplay.beforeErrorSampling =
              SentryReplayOptions.BeforeErrorSamplingCallback { event, hint ->
                  // Only capture replay for crashes (excluding e.g. handled exceptions)
                  event.isCrashed
              }
      }
      
Dependencies
  • Bump Native SDK from v0.13.2 to v0.13.3 (#​5215)
  • Bump OpenTelemetry (#​5225)
    • opentelemetry to 1.60.1 (was 1.57.0)
    • opentelemetry-instrumentation to 2.26.0 (was 2.23.0)
    • opentelemetry-instrumentation-alpha to 2.26.0-alpha (was 2.23.0-alpha)
    • opentelemetry-semconv to 1.40.0 (was 1.37.0)
    • opentelemetry-semconv-alpha to 1.40.0-alpha (was 1.37.0-alpha)

v8.36.0

Compare Source

Features
  • Show feedback form on device shake (#​5150)
    • Enable via options.getFeedbackOptions().setUseShakeGesture(true) or manifest meta-data io.sentry.feedback.use-shake-gesture
    • Uses the device's accelerometer — no special permissions required
Fixes
  • Support masking/unmasking and click/scroll detection for Jetpack Compose 1.10+ (#​5189)
Dependencies
  • Bump Native SDK from v0.13.1 to v0.13.2 (#​5181)
  • Bump com.abovevacant:epitaph to 0.1.1 to avoid old D8/R8 dexing crashes in downstream Android builds on old AGP versions such as 7.4.x. (#​5200)

v8.35.0

Compare Source

Fixes
  • Android: Remove the dependency on protobuf-lite for tombstones (#​5157)
Features
  • Add new experimental option to capture profiles for ANRs (#​4899)
    • This feature will capture a stack profile of the main thread when it gets unresponsive
    • The profile gets attached to the ANR event on the next app start, providing a flamegraph of the ANR issue on the sentry issue details page
    • Enable via options.setAnrProfilingSampleRate(<sample-rate>) or AndroidManifest.xml: <meta-data android:name="io.sentry.anr.profiling.sample-rate" android:value="[0.0-1.0]" />
    • The sample rate controls the probability of collecting a profile for each detected foreground ANR (0.0 to 1.0, null to disable)
Behavioral Changes
  • Add enableAnrFingerprinting option which assigns static fingerprints to ANR events with system-only stacktraces
    • When enabled, ANRs whose stacktraces contain only system frames (e.g. java.lang or android.os) are grouped into a single issue instead of creating many separate issues
    • This will help to reduce overall ANR issue noise in the Sentry dashboard
    • IMPORTANT: This option is enabled by default.
    • Disable via options.setEnableAnrFingerprinting(false) or AndroidManifest.xml: <meta-data android:name="io.sentry.anr.enable-fingerprinting" android:value="false" />

v8.34.1

Compare Source

Fixes
  • Common: Finalize previous session even when auto session tracking is disabled (#​5154)
  • Android: Add filterTouchesWhenObscured to prevent Tapjacking on user feedback dialog (#​5155)
  • Android: Add proguard rules to prevent error about missing Replay classes (#​5153)

v8.34.0

Compare Source

Features
  • Allow configuring shutdown and session flush timeouts externally (#​4641)
    • sentry.properties: shutdown-timeout-millis, session-flush-timeout-millis
    • Environment variables: SENTRY_SHUTDOWN_TIMEOUT_MILLIS, SENTRY_SESSION_FLUSH_TIMEOUT_MILLIS
    • Spring Boot application.properties: sentry.shutdownTimeoutMillis, sentry.sessionFlushTimeoutMillis
  • Add scope-level attributes API (#​5118) via (#​5148)
    • Automatically include scope attributes in logs and metrics (#​5120)
    • New APIs are Sentry.setAttribute, Sentry.setAttributes, Sentry.removeAttribute
  • Support collections and arrays in attribute type inference (#​5124)
  • Add support for SENTRY_SAMPLE_RATE environment variable / sample-rate property (#​5112)
  • Create sentry-opentelemetry-otlp and sentry-opentelemetry-otlp-spring modules for combining OpenTelemetry SDK OTLP export with Sentry SDK (#​5100)
    • OpenTelemetry is configured to send spans to Sentry directly using an OTLP endpoint.
    • Sentry only uses trace and span ID from OpenTelemetry (via OpenTelemetryOtlpEventProcessor) but will not send spans through OpenTelemetry nor use OpenTelemetry Context for Scopes propagation.
    • See the OTLP setup docs for Java and Spring Boot for installation and configuration instructions.
  • Add screenshot masking support using view hierarchy (#​5077)
    • Masks sensitive content (text, images) in error screenshots using the same view hierarchy approach as Session Replay
    • Requires the sentry-android-replay module to be present at runtime for masking to work
    • Enable via code:
      SentryAndroid.init(context) { options ->
          options.isAttachScreenshot = true
          options.screenshot.setMaskAllText(true)
          options.screenshot.setMaskAllImages(true)
          // Or mask specific view classes
          options.screenshot.addMaskViewClass("com.example.MyCustomView")
      }
      
    • Or via AndroidManifest.xml:
      <meta-data android:name="io.sentry.attach-screenshot" android:value="true" />
      <meta-data android:name="io.sentry.screenshot.mask-all-text" android:value="true" />
      <meta-data android:name="io.sentry.screenshot.mask-all-images" android:value="true" />
      
  • The ManifestMetaDataReader now read the DIST (#​5107)
Fixes
  • Fix attribute type detection for Long, Short, Byte, BigInteger, AtomicInteger, and AtomicLong being incorrectly inferred as double instead of integer (#​5122)
  • Remove AndroidRuntimeManager StrictMode relaxation to prevent ANRs during SDK init (#​5127)
    • IMPORTANT: StrictMode violations may appear again in debug builds. This is intentional to prevent ANRs in production releases.
  • Fix crash when unregistering SystemEventsBroadcastReceiver with try-catch block. (#​5106)
  • Use peekDecorView instead of getDecorView in SentryGestureListener to avoid forcing view hierarchy construction (#​5134)
  • Log an actionable error message when Relay returns HTTP 413 (Content Too Large) (#​5115)
    • Also switch the client report discard reason for all HTTP 4xx/5xx errors (except 429) from network_error to send_error
  • Trim DSN string before parsing to avoid URISyntaxException caused by trailing whitespace (#​5113)
  • Reduce allocations and bytecode instructions during Sentry.init (#​5135)
Dependencies

v8.33.0

Compare Source

Features
  • Add installGroupsOverride parameter to Build Distribution SDK for programmatic filtering, with support for configuration via properties file using io.sentry.distribution.install-groups-override (#​5066)
Fixes
  • When merging tombstones with Native SDK, use the tombstone message if the Native SDK didn't explicitly provide one. (#​5095)
  • Fix thread leak caused by eager creation of SentryExecutorService in SentryOptions (#​5093)
    • There were cases where we created options that ended up unused but we failed to clean those up.
  • Attach user attributes to logs and metrics regardless of sendDefaultPii (#​5099)
  • No longer log a warning if a logging integration cannot initialize Sentry due to missing DSN (#​5075)
    • While this may have been useful to some, it caused lots of confusion.
  • Session Replay: Add androidx.camera.view.PreviewView to default maskedViewClasses to mask camera previews by default. (#​5097)
Dependencies
Internal
  • Add integration to track session replay custom masking (#​5070)

v8.32.0

Compare Source

Features
  • Add installGroups property to Build Distribution SDK (#​5062)
  • Update Android targetSdk to API 36 (Android 16) (#​5016)
  • Add AndroidManifest support for Spotlight configuration via io.sentry.spotlight.enable and io.sentry.spotlight.url (#​5064)
  • Collect database transaction spans (BEGIN, COMMIT, ROLLBACK) (#​5072)
    • To enable creation of these spans, set options.enableDatabaseTransactionTracing to true
    • enable-database-transaction-tracing=true when using sentry.properties
    • For Spring Boot, use sentry.enable-database-transaction-tracing=true in application.properties or in application.yml:
      sentry:
        enable-database-transaction-tracing: true
      
  • Add support for collecting native crashes using Tombstones (#​4933, #​5037)
    • Added Tombstone integration that detects native crashes using ApplicationExitInfo.REASON_CRASH_NATIVE on Android 12+
    • Crashes enriched with Tombstones contain more crash details and detailed thread info
    • Tombstone and NDK integrations are now automatically merged into a single crash event, eliminating duplicate reports
    • To enable it, add the integration in your Sentry initialization:
      SentryAndroid.init(context, options -> {
          options.isTombstoneEnabled = true
      })
      
      or in the AndroidManifest.xml using:
      <meta-data android:name="io.sentry.tombstone.enable" android:value="true" />
      
Fixes
  • Extract SpotlightIntegration to separate sentry-spotlight module to prevent insecure HTTP URLs from appearing in release APKs (#​5064)
    • Breaking: Users who enable Spotlight must now add the io.sentry:sentry-spotlight dependency:
      dependencies {
          debugImplementation("io.sentry:sentry-spotlight:<version>")
      }
      
  • Fix scroll target detection for Jetpack Compose (#​5017)
  • No longer fork Sentry Scopes for reactor-kafka consumer poll Runnable (#​5080)
    • This was causing a memory leak because reactor-kafka's poll event reschedules itself infinitely, and each invocation of SentryScheduleHook created forked scopes with a parent reference, building an unbounded chain that couldn't be garbage collected.
  • Fix cold/warm app start type detection for Android devices running API level 34+ (#​4999)
Internal
  • Establish new native exception mechanisms to differentiate events generated by sentry-native from ApplicationExitInfo. (#​5052)
  • Set write permission for statuses in the changelog preview GHA workflow. (#​5053)
Dependencies

v8.31.0

Compare Source

Features
  • Added io.sentry.ndk.sdk-name Android manifest option to configure the native SDK's name (#​5027)
  • Replace sentry.trace.parent_span_id attribute with spanId property on SentryLogEvent (#​5040)
Fixes
  • Only attach user attributes to logs if sendDefaultPii is enabled (#​5036)
  • Reject new logs if LoggerBatchProcessor is shutting down (#​5041)
  • Downgrade protobuf-javalite dependency from 4.33.1 to 3.25.8 (#​5044)
Dependencies

v8.30.0

Compare Source

Fixes
  • Fix ANRs when collecting device context (#​4970)
    • IMPORTANT: This disables collecting external storage size (total/free) by default, to enable it back
      use options.isCollectExternalStorageContext = true or <meta-data android:name="io.sentry.external-storage-context" android:value="true" />
  • Fix NullPointerException when reading ANR marker (#​4979)
  • Report discarded log in batch processor as log_byte (#​4971)
Improvements
  • Expose MAX_EVENT_SIZE_BYTES constant in SentryOptions (#​4962)
  • Discard envelopes on 4xx and 5xx response (#​4950)
    • This aims to not overwhelm Sentry after an outage or load shedding (including HTTP 429) where too many events are sent at once
Features
  • Add a Tombstone integration that detects native crashes without relying on the NDK integration, but instead using ApplicationExitInfo.REASON_CRASH_NATIVE on Android 12+. (#​4933)
    • Currently exposed via options as an internal API only.
    • If enabled alongside the NDK integration, crashes will be reported as two separate events. Users should enable only one; deduplication between both integrations will be added in a future release.
  • Add Sentry Metrics to Java SDK (#​5026)
    • Metrics are enabled by default
    • APIs are namespaced under Sentry.metrics()
    • We offer the following APIs:
      • count: A metric that increments counts
      • gauge: A metric that tracks a value that can go up or down
      • distribution: A metric that tracks the statistical distribution of values
    • For more details, see the Metrics documentation: https://docs.sentry.io/product/explore/metrics/getting-started/

v8.29.0

Compare Source

Fixes
  • Support serialization of primitive arrays (boolean[], byte[], short[], char[], int[], long[], float[], double[]) (#​4968)
  • Session Replay: Improve network body parsing and truncation handling (#​4958)
Internal
  • Support metric envelope item type (#​4956)

v8.28.0

Compare Source

Features
  • Android: Flush logs when app enters background (#​4951)
  • Add option to capture additional OkHttp network request/response details in session replays (#​4919)
    • Depends on SentryOkHttpInterceptor to intercept the request and extract request/response bodies
    • To enable, add url regexes via the io.sentry.session-replay.network-detail-allow-urls metadata tag in AndroidManifest (code sample) - Or you can manually specify SentryReplayOptions via SentryAndroid#init:
      (Make sure you disable the auto init via manifest meta-data: io.sentry.auto-init=false)
Kotlin
SentryAndroid.init(
    this,
    options -> {
      // options.dsn = "https://[email protected]/0"
      // options.sessionReplay.sessionSampleRate = 1.0
      // options.sessionReplay.onErrorSampleRate = 1.0
      // ..

      options.sessionReplay.networkDetailAllowUrls = listOf(".*")
      options.sessionReplay.networkDetailDenyUrls = listOf(".*deny.*")
      options.sessionReplay.networkRequestHeaders = listOf("Authorization", "X-Custom-Header", "X-Test-Request")
      options.sessionReplay.networkResponseHeaders = listOf("X-Response-Time", "X-Cache-Status", "X-Test-Response")
    });
Java
SentryAndroid.init(
    this,
    options -> {
        options.getSessionReplay().setNetworkDetailAllowUrls(Arrays.asList(".*"));
        options.getSessionReplay().setNetworkDetailDenyUrls(Arrays.asList(".*deny.*"));
        options.getSessionReplay().setNetworkRequestHeaders(
            Arrays.asList("Authorization", "X-Custom-Header", "X-Test-Request"));
        options.getSessionReplay().setNetworkResponseHeaders(
            Arrays.asList("X-Response-Time", "X-Cache-Status", "X-Test-Response"));
    });

Improvements
  • Avoid forking rootScopes for Reactor if current thread has NoOpScopes (#​4793)
    • This reduces the SDKs overhead by avoiding unnecessary scope forks
Fixes
  • Fix missing thread stacks for ANRv1 events (#​4918)
  • Fix handling of unparseable mime-type on request filter (#​4939)
Internal
  • Support span envelope item type (#​4935)
Dependencies

v8.27.1

Compare Source

Fixes
  • Do not log if sentry.properties in rundir has not been found (#​4929)

v8.27.0

Compare Source

Features
  • Implement OpenFeature Integration that tracks Feature Flag evaluations (#​4910)
    • To make use of it, add the sentry-openfeature dependency and register the the hook using: openFeatureApiInstance.addHooks(new SentryOpenFeatureHook());
  • Implement LaunchDarkly Integrations that track Feature Flag evaluations (#​4917)
    • For Android, please add sentry-launchdarkly-android as a dependency and register the SentryLaunchDarklyAndroidHook
    • For Server / JVM, please add sentry-launchdarkly-server as a dependency and register the SentryLaunchDarklyServerHook
  • Detect oversized events and reduce their size (#​4903)
    • You can opt into this new behaviour by setting enableEventSizeLimiting to true (sentry.enable-event-size-limiting=true for Spring Boot application.properties)
    • You may optionally register an onOversizedEvent callback to implement custom logic that is executed in case an oversized event is detected
      • This is executed first and if event size was reduced sufficiently, no further truncation is performed
    • In case we detect an oversized event, we first drop breadcrumbs and if that isn't sufficient we also drop stack frames in order to get an events size down
Improvements
  • Do not send manual log origin (#​4897)
Dependencies

v8.26.0

Compare Source

Features
  • Add feature flags API (#​4812) and (#​4831)
    • You may now keep track of your feature flag evaluations and have them show up in Sentry.
    • Top level API (Sentry.addFeatureFlag("my-feature-flag", true);) writes to scopes and the current span (if there is one)
    • It is also possible to use API on IScope, IScopes, ISpan and ITransaction directly
    • Feature flag evaluations tracked on scope(s) will be added to any errors reported to Sentry.
      • The SDK keeps the latest 100 evaluations from scope(s), replacing old entries as new evaluations are added.
    • For feature flag evaluations tracked on spans:
      • Only 10 evaluations are tracked per span, existing flags are updated but new ones exceeding the limit are ignored
      • Spans do not inherit evaluations from their parent
  • Drop log events once buffer hits hard limit (#​4889)
    • If we have 1000 log events queued up, we drop any new logs coming in to prevent OOM
  • Remove vendored code and upgrade to async profiler 4.2 (#​4856)
    • This adds support for JDK 23+
Fixes
  • Removed SentryExecutorService limit for delayed scheduled tasks (#​4846)
  • Fix visual artifacts for the Canvas strategy on some devices (#​4861)
  • [Config] Trim whitespace on properties path (#​4880)
  • Only set DefaultReplayBreadcrumbConverter if replay is available (#​4888)
  • Session Replay: Cache connection status instead of using blocking calls (#​4891)
  • Fix log count in client reports (#​4869)
  • Fix profilerId propagation (#​4833)
  • Fix profiling init for Spring and Spring Boot w Agent auto-init (#​4815)
  • Copy active span on scope clone (#​4878)
Improvements
  • Fallback to distinct-id as user.id logging attribute when user is not set (#​4847)
  • Report Timber.tag() as timber.tag log attribute (#​4845)
  • Session Replay: Add screenshot strategy serialization to RRWeb events (#​4851)
  • Report discarded log bytes (#​4871)
  • Log why a properties file was not loaded (#​4879)
Dependencies

Configuration

📅 Schedule: (in timezone America/Toronto)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [io.sentry:sentry](https://github.com/getsentry/sentry-java) | `8.25.0` → `8.41.0` | ![age](https://developer.mend.io/api/mc/badges/age/maven/io.sentry:sentry/8.41.0?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.sentry:sentry/8.25.0/8.41.0?slim=true) | --- > ⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/1) for more information. --- ### Release Notes <details> <summary>getsentry/sentry-java (io.sentry:sentry)</summary> ### [`v8.41.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8410) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.40.0...8.41.0) ##### Features - Session Replay: experimental support for capturing `SurfaceView` content (e.g. Unity, video players, maps) ([#&#8203;5333](https://github.com/getsentry/sentry-java/pull/5333)) - To enable, set `options.sessionReplay.isCaptureSurfaceViews = true` - Or via manifest: `<meta-data android:name="io.sentry.session-replay.capture-surface-views" android:value="true" />` - **Warning:** masking granularity is at the SurfaceView level only — the SDK cannot mask individual elements rendered inside the SurfaceView (e.g. native Unity UI, map labels, video frames). Only enable for SurfaceViews whose content is safe to record. - Add `Sentry.feedback()` API for `show()` and `capture()` ([#&#8203;5349](https://github.com/getsentry/sentry-java/pull/5349)) - `Sentry.showUserFeedbackDialog()` is deprecated in favor of `Sentry.feedback().show()` - `Sentry.captureFeedback()` is deprecated in favor of `Sentry.feedback().capture()` - `Sentry.captureUserFeedback()` and `UserFeedback` are deprecated in favor of `Sentry.feedback().capture()` with the new `Feedback` type - `SentryUserFeedbackDialog` is deprecated in favor of `SentryUserFeedbackForm` - All deprecated APIs will be removed in the next major version - Deprecate `SentryUserFeedbackButton` (View-based and Compose-based) ([#&#8203;5350](https://github.com/getsentry/sentry-java/pull/5350)) - It will be removed in the next major version - Add per-form shake-to-show support for `SentryUserFeedbackForm` ([#&#8203;5353](https://github.com/getsentry/sentry-java/pull/5353)) - Useful for enabling shake-to-report on specific screens instead of globally ```kotlin SentryUserFeedbackForm.Builder(activity) .configurator { it.isUseShakeGesture = true } .create() ``` - Add support for Kafka ([#&#8203;5249](https://github.com/getsentry/sentry-java/pull/5249)) - You will need to add the `sentry-kafka` dependency and opt-in via the new option. - Set `options.setEnableQueueTracing(true)` on `Sentry.init` - Or set `sentry.enable-queue-tracing=true` in `application.properties` - For Spring Boot Kafka is auto instrumented and no further configuration is needed. - also see <https://docs.sentry.io/platforms/java/guides/spring-boot/integrations/kafka/> - When using `kafka-clients` directly - you need to wrap your `KafkaProducer` via `SentryKafkaProducer.wrap(kafkaProducer)` to get `queue.publish` spans - and you may use our `SentryKafkaConsumerTracing.withTracing` helper to instrument the consumer side manually. - also see <https://docs.sentry.io/platforms/java/integrations/kafka/> ##### Fixes - Fix soft input keyboard not being shown on the Feedback form ([#&#8203;5359](https://github.com/getsentry/sentry-java/pull/5359)) - Fix shake-to-report not triggering on some devices due to high acceleration threshold ([#&#8203;5366](https://github.com/getsentry/sentry-java/pull/5366)) - Fix feedback form retaining previous message when shown again via shake ([#&#8203;5366](https://github.com/getsentry/sentry-java/pull/5366)) - Avoid stack overflow when deserializing large flat JSON objects ([#&#8203;5361](https://github.com/getsentry/sentry-java/pull/5361)) ##### Dependencies - Bump Native SDK from v0.13.7 to v0.14.0 ([#&#8203;5334](https://github.com/getsentry/sentry-java/pull/5334), [#&#8203;5365](https://github.com/getsentry/sentry-java/pull/5365)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0140) - [diff](https://github.com/getsentry/sentry-native/compare/0.13.7...0.14.0) - Bump Gradle from v9.4.1 to v9.5.0 ([#&#8203;5344](https://github.com/getsentry/sentry-java/pull/5344)) - [changelog](https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v950) - [diff](https://github.com/gradle/gradle/compare/v9.4.1...v9.5.0) ### [`v8.40.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8400) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.39.1...8.40.0) ##### Fixes - Fix `NoSuchMethodError` for `LayoutCoordinates.localBoundingBoxOf$default` on Compose touch dispatch with AGP 8.13 and `minSdk < 24` ([#&#8203;5302](https://github.com/getsentry/sentry-java/pull/5302)) - Fix reporting OkHttp's synthetic 504 "Unsatisfiable Request" responses as errors for `CacheControl.FORCE_CACHE` cache misses ([#&#8203;5299](https://github.com/getsentry/sentry-java/pull/5299)) - Make `SentryGestureDetector` thread-safe and recycle `VelocityTracker` per gesture ([#&#8203;5301](https://github.com/getsentry/sentry-java/pull/5301)) - Fix duplicate `ui.click` breadcrumbs when another `Window.Callback` wraps `SentryWindowCallback` ([#&#8203;5300](https://github.com/getsentry/sentry-java/pull/5300)) ##### Dependencies - Bump Native SDK from v0.13.6 to v0.13.7 ([#&#8203;5296](https://github.com/getsentry/sentry-java/pull/5296)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0137) - [diff](https://github.com/getsentry/sentry-native/compare/0.13.6...0.13.7) ### [`v8.39.1`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8391) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.39.0...8.39.1) ##### Fixes - Fix `JsonObjectReader` and `MapObjectReader` hanging indefinitely when deserialization errors leave the reader in an inconsistent state ([#&#8203;5293](https://github.com/getsentry/sentry-java/pull/5293)) - Failed collection values are now skipped so parsing can continue - Skipped collection values emit `WARNING` logs - Unknown-key failures and unrecoverable recovery failures emit `ERROR` logs ### [`v8.39.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8390) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.38.0...8.39.0) ##### Fixes - Fix ANR caused by `GestureDetectorCompat` Handler/MessageQueue lock contention in `SentryWindowCallback` ([#&#8203;5138](https://github.com/getsentry/sentry-java/pull/5138)) ##### Internal - Bump AGP version from v8.6.0 to v8.13.1 ([#&#8203;5063](https://github.com/getsentry/sentry-java/pull/5063)) ##### Dependencies - Bump Native SDK from v0.13.3 to v0.13.6 ([#&#8203;5277](https://github.com/getsentry/sentry-java/pull/5277)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0136) - [diff](https://github.com/getsentry/sentry-native/compare/0.13.3...0.13.6) - Bump Gradle from v8.14.3 to v9.4.1 ([#&#8203;5063](https://github.com/getsentry/sentry-java/pull/5063)) - [changelog](https://github.com/gradle/gradle/blob/master/CHANGELOG.md#v941) - [diff](https://github.com/gradle/gradle/compare/v8.14.3...v9.4.1) ### [`v8.38.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8380) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.37.1...8.38.0) ##### Features - Prevent cross-organization trace continuation ([#&#8203;5136](https://github.com/getsentry/sentry-java/pull/5136)) - By default, the SDK now extracts the organization ID from the DSN (e.g. `o123.ingest.sentry.io`) and compares it with the `sentry-org_id` value in incoming baggage headers. When the two differ, the SDK starts a fresh trace instead of continuing the foreign one. This guards against accidentally linking traces across organizations. - New option `enableStrictTraceContinuation` (default `false`): when enabled, both the SDK's org ID **and** the incoming baggage org ID must be present and match for a trace to be continued. Traces with a missing org ID on either side are rejected. Configurable via code (`setStrictTraceContinuation(true)`), `sentry.properties` (`enable-strict-trace-continuation=true`), Android manifest (`io.sentry.strict-trace-continuation.enabled`), or Spring Boot (`sentry.strict-trace-continuation=true`). - New option `orgId`: allows explicitly setting the organization ID for self-hosted and Relay setups where it cannot be extracted from the DSN. Configurable via code (`setOrgId("123")`), `sentry.properties` (`org-id=123`), Android manifest (`io.sentry.org-id`), or Spring Boot (`sentry.org-id=123`). - Android: Attachments on the scope will now be synced to native ([#&#8203;5211](https://github.com/getsentry/sentry-java/pull/5211)) - Add THIRD\_PARTY\_NOTICES.md for vendored third-party code, bundled as SENTRY\_THIRD\_PARTY\_NOTICES.md in the sentry JAR under META-INF ([#&#8203;5186](https://github.com/getsentry/sentry-java/pull/5186)) ##### Improvements - Do not retrieve `ActivityManager` if API < 35 on SDK init ([#&#8203;5275](https://github.com/getsentry/sentry-java/pull/5275)) ### [`v8.37.1`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8371) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.37.0...8.37.1) ##### Fixes - Fix deadlock in `SentryContextStorage.root()` with virtual threads and OpenTelemetry agent ([#&#8203;5234](https://github.com/getsentry/sentry-java/pull/5234)) ### [`v8.37.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8370) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.36.0...8.37.0) ##### Fixes - Session Replay: Fix Compose text masking mismatch with weighted text ([#&#8203;5218](https://github.com/getsentry/sentry-java/pull/5218)) ##### Features - Add cache tracing instrumentation for Spring Boot 2, 3, and 4 ([#&#8203;5165](https://github.com/getsentry/sentry-java/pull/5165)) - Wraps Spring `CacheManager` and `Cache` beans to produce cache spans - Set `sentry.enable-cache-tracing` to `true` to enable this feature - Add JCache (JSR-107) cache tracing via new `sentry-jcache` module ([#&#8203;5165](https://github.com/getsentry/sentry-java/pull/5165)) - Wraps JCache `Cache` with `SentryJCacheWrapper` to produce cache spans - Set the `enableCacheTracing` option to `true` to enable this feature - Add configurable `IScopesStorageFactory` to `SentryOptions` for providing a custom `IScopesStorage`, e.g. when the default `ThreadLocal`-backed storage is incompatible with non-pinning thread models ([#&#8203;5199](https://github.com/getsentry/sentry-java/pull/5199)) - Android: Add `beforeErrorSampling` callback to Session Replay ([#&#8203;5214](https://github.com/getsentry/sentry-java/pull/5214)) - Allows filtering which errors trigger replay capture before the `onErrorSampleRate` is checked - Returning `false` skips replay capture entirely for that error; returning `true` proceeds with the normal sample rate check - Example usage: ```kotlin SentryAndroid.init(context) { options -> options.sessionReplay.beforeErrorSampling = SentryReplayOptions.BeforeErrorSamplingCallback { event, hint -> // Only capture replay for crashes (excluding e.g. handled exceptions) event.isCrashed } } ``` ##### Dependencies - Bump Native SDK from v0.13.2 to v0.13.3 ([#&#8203;5215](https://github.com/getsentry/sentry-java/pull/5215)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0133) - [diff](https://github.com/getsentry/sentry-native/compare/0.13.2...0.13.3) - Bump OpenTelemetry ([#&#8203;5225](https://github.com/getsentry/sentry-java/pull/5225)) - `opentelemetry` to `1.60.1` (was `1.57.0`) - `opentelemetry-instrumentation` to `2.26.0` (was `2.23.0`) - `opentelemetry-instrumentation-alpha` to `2.26.0-alpha` (was `2.23.0-alpha`) - `opentelemetry-semconv` to `1.40.0` (was `1.37.0`) - `opentelemetry-semconv-alpha` to `1.40.0-alpha` (was `1.37.0-alpha`) ### [`v8.36.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8360) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.35.0...8.36.0) ##### Features - Show feedback form on device shake ([#&#8203;5150](https://github.com/getsentry/sentry-java/pull/5150)) - Enable via `options.getFeedbackOptions().setUseShakeGesture(true)` or manifest meta-data `io.sentry.feedback.use-shake-gesture` - Uses the device's accelerometer — no special permissions required ##### Fixes - Support masking/unmasking and click/scroll detection for Jetpack Compose 1.10+ ([#&#8203;5189](https://github.com/getsentry/sentry-java/pull/5189)) ##### Dependencies - Bump Native SDK from v0.13.1 to v0.13.2 ([#&#8203;5181](https://github.com/getsentry/sentry-java/pull/5181)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0132) - [diff](https://github.com/getsentry/sentry-native/compare/0.13.1...0.13.2) - Bump `com.abovevacant:epitaph` to `0.1.1` to avoid old D8/R8 dexing crashes in downstream Android builds on old AGP versions such as 7.4.x. ([#&#8203;5200](https://github.com/getsentry/sentry-java/pull/5200)) - [changelog](https://github.com/abovevacant/epitaph/blob/main/CHANGELOG.md#011---2026-03-16) - [diff](https://github.com/abovevacant/epitaph/compare/v0.1.0...v0.1.1) ### [`v8.35.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8350) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.34.1...8.35.0) ##### Fixes - Android: Remove the dependency on protobuf-lite for tombstones ([#&#8203;5157](https://github.com/getsentry/sentry-java/pull/5157)) ##### Features - Add new experimental option to capture profiles for ANRs ([#&#8203;4899](https://github.com/getsentry/sentry-java/pull/4899)) - This feature will capture a stack profile of the main thread when it gets unresponsive - The profile gets attached to the ANR event on the next app start, providing a flamegraph of the ANR issue on the sentry issue details page - Enable via `options.setAnrProfilingSampleRate(<sample-rate>)` or AndroidManifest.xml: `<meta-data android:name="io.sentry.anr.profiling.sample-rate" android:value="[0.0-1.0]" />` - The sample rate controls the probability of collecting a profile for each detected foreground ANR (0.0 to 1.0, null to disable) ##### Behavioral Changes - Add `enableAnrFingerprinting` option which assigns static fingerprints to ANR events with system-only stacktraces - When enabled, ANRs whose stacktraces contain only system frames (e.g. `java.lang` or `android.os`) are grouped into a single issue instead of creating many separate issues - This will help to reduce overall ANR issue noise in the Sentry dashboard - **IMPORTANT:** This option is enabled by default. - Disable via `options.setEnableAnrFingerprinting(false)` or AndroidManifest.xml: `<meta-data android:name="io.sentry.anr.enable-fingerprinting" android:value="false" />` ### [`v8.34.1`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8341) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.34.0...8.34.1) ##### Fixes - Common: Finalize previous session even when auto session tracking is disabled ([#&#8203;5154](https://github.com/getsentry/sentry-java/pull/5154)) - Android: Add `filterTouchesWhenObscured` to prevent Tapjacking on user feedback dialog ([#&#8203;5155](https://github.com/getsentry/sentry-java/pull/5155)) - Android: Add proguard rules to prevent error about missing Replay classes ([#&#8203;5153](https://github.com/getsentry/sentry-java/pull/5153)) ### [`v8.34.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8340) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.33.0...8.34.0) ##### Features - Allow configuring shutdown and session flush timeouts externally ([#&#8203;4641](https://github.com/getsentry/sentry-java/pull/4641)) - `sentry.properties`: `shutdown-timeout-millis`, `session-flush-timeout-millis` - Environment variables: `SENTRY_SHUTDOWN_TIMEOUT_MILLIS`, `SENTRY_SESSION_FLUSH_TIMEOUT_MILLIS` - Spring Boot `application.properties`: `sentry.shutdownTimeoutMillis`, `sentry.sessionFlushTimeoutMillis` - Add scope-level attributes API ([#&#8203;5118](https://github.com/getsentry/sentry-java/pull/5118)) via ([#&#8203;5148](https://github.com/getsentry/sentry-java/pull/5148)) - Automatically include scope attributes in logs and metrics ([#&#8203;5120](https://github.com/getsentry/sentry-java/pull/5120)) - New APIs are `Sentry.setAttribute`, `Sentry.setAttributes`, `Sentry.removeAttribute` - Support collections and arrays in attribute type inference ([#&#8203;5124](https://github.com/getsentry/sentry-java/pull/5124)) - Add support for `SENTRY_SAMPLE_RATE` environment variable / `sample-rate` property ([#&#8203;5112](https://github.com/getsentry/sentry-java/pull/5112)) - Create `sentry-opentelemetry-otlp` and `sentry-opentelemetry-otlp-spring` modules for combining OpenTelemetry SDK OTLP export with Sentry SDK ([#&#8203;5100](https://github.com/getsentry/sentry-java/pull/5100)) - OpenTelemetry is configured to send spans to Sentry directly using an OTLP endpoint. - Sentry only uses trace and span ID from OpenTelemetry (via `OpenTelemetryOtlpEventProcessor`) but will not send spans through OpenTelemetry nor use OpenTelemetry `Context` for `Scopes` propagation. - See the OTLP setup docs for [Java](https://docs.sentry.io/platforms/java/opentelemetry/setup/otlp/) and [Spring Boot](https://docs.sentry.io/platforms/java/guides/spring-boot/opentelemetry/setup/otlp/) for installation and configuration instructions. - Add screenshot masking support using view hierarchy ([#&#8203;5077](https://github.com/getsentry/sentry-java/pull/5077)) - Masks sensitive content (text, images) in error screenshots using the same view hierarchy approach as Session Replay - Requires the `sentry-android-replay` module to be present at runtime for masking to work - Enable via code: ```kotlin SentryAndroid.init(context) { options -> options.isAttachScreenshot = true options.screenshot.setMaskAllText(true) options.screenshot.setMaskAllImages(true) // Or mask specific view classes options.screenshot.addMaskViewClass("com.example.MyCustomView") } ``` - Or via `AndroidManifest.xml`: ```xml <meta-data android:name="io.sentry.attach-screenshot" android:value="true" /> <meta-data android:name="io.sentry.screenshot.mask-all-text" android:value="true" /> <meta-data android:name="io.sentry.screenshot.mask-all-images" android:value="true" /> ``` - The `ManifestMetaDataReader` now read the `DIST` ([#&#8203;5107](https://github.com/getsentry/sentry-java/pull/5107)) ##### Fixes - Fix attribute type detection for `Long`, `Short`, `Byte`, `BigInteger`, `AtomicInteger`, and `AtomicLong` being incorrectly inferred as `double` instead of `integer` ([#&#8203;5122](https://github.com/getsentry/sentry-java/pull/5122)) - Remove `AndroidRuntimeManager` StrictMode relaxation to prevent ANRs during SDK init ([#&#8203;5127](https://github.com/getsentry/sentry-java/pull/5127)) - **IMPORTANT:** StrictMode violations may appear again in debug builds. This is intentional to prevent ANRs in production releases. - Fix crash when unregistering `SystemEventsBroadcastReceiver` with try-catch block. ([#&#8203;5106](https://github.com/getsentry/sentry-java/pull/5106)) - Use `peekDecorView` instead of `getDecorView` in `SentryGestureListener` to avoid forcing view hierarchy construction ([#&#8203;5134](https://github.com/getsentry/sentry-java/pull/5134)) - Log an actionable error message when Relay returns HTTP 413 (Content Too Large) ([#&#8203;5115](https://github.com/getsentry/sentry-java/pull/5115)) - Also switch the client report discard reason for all HTTP 4xx/5xx errors (except 429) from `network_error` to `send_error` - Trim DSN string before parsing to avoid `URISyntaxException` caused by trailing whitespace ([#&#8203;5113](https://github.com/getsentry/sentry-java/pull/5113)) - Reduce allocations and bytecode instructions during `Sentry.init` ([#&#8203;5135](https://github.com/getsentry/sentry-java/pull/5135)) ##### Dependencies - Bump Native SDK from v0.12.7 to v0.13.1 ([#&#8203;5104](https://github.com/getsentry/sentry-java/pull/5104)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0131) - [diff](https://github.com/getsentry/sentry-native/compare/0.12.7...0.13.1) ### [`v8.33.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8330) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.32.0...8.33.0) ##### Features - Add `installGroupsOverride` parameter to Build Distribution SDK for programmatic filtering, with support for configuration via properties file using `io.sentry.distribution.install-groups-override` ([#&#8203;5066](https://github.com/getsentry/sentry-java/pull/5066)) ##### Fixes - When merging tombstones with Native SDK, use the tombstone message if the Native SDK didn't explicitly provide one. ([#&#8203;5095](https://github.com/getsentry/sentry-java/pull/5095)) - Fix thread leak caused by eager creation of `SentryExecutorService` in `SentryOptions` ([#&#8203;5093](https://github.com/getsentry/sentry-java/pull/5093)) - There were cases where we created options that ended up unused but we failed to clean those up. - Attach user attributes to logs and metrics regardless of `sendDefaultPii` ([#&#8203;5099](https://github.com/getsentry/sentry-java/pull/5099)) - No longer log a warning if a logging integration cannot initialize Sentry due to missing DSN ([#&#8203;5075](https://github.com/getsentry/sentry-java/pull/5075)) - While this may have been useful to some, it caused lots of confusion. - Session Replay: Add `androidx.camera.view.PreviewView` to default `maskedViewClasses` to mask camera previews by default. ([#&#8203;5097](https://github.com/getsentry/sentry-java/pull/5097)) ##### Dependencies - Bump Native SDK from v0.12.4 to v0.12.7 ([#&#8203;5071](https://github.com/getsentry/sentry-java/pull/5071), [#&#8203;5098](https://github.com/getsentry/sentry-java/pull/5098)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0127) - [diff](https://github.com/getsentry/sentry-native/compare/0.12.4...0.12.7) ##### Internal - Add integration to track session replay custom masking ([#&#8203;5070](https://github.com/getsentry/sentry-java/pull/5070)) ### [`v8.32.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8320) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.31.0...8.32.0) ##### Features - Add `installGroups` property to Build Distribution SDK ([#&#8203;5062](https://github.com/getsentry/sentry-java/pull/5062)) - Update Android targetSdk to API 36 (Android 16) ([#&#8203;5016](https://github.com/getsentry/sentry-java/pull/5016)) - Add AndroidManifest support for Spotlight configuration via `io.sentry.spotlight.enable` and `io.sentry.spotlight.url` ([#&#8203;5064](https://github.com/getsentry/sentry-java/pull/5064)) - Collect database transaction spans (`BEGIN`, `COMMIT`, `ROLLBACK`) ([#&#8203;5072](https://github.com/getsentry/sentry-java/pull/5072)) - To enable creation of these spans, set `options.enableDatabaseTransactionTracing` to `true` - `enable-database-transaction-tracing=true` when using `sentry.properties` - For Spring Boot, use `sentry.enable-database-transaction-tracing=true` in `application.properties` or in `application.yml`: ```yaml sentry: enable-database-transaction-tracing: true ``` - Add support for collecting native crashes using Tombstones ([#&#8203;4933](https://github.com/getsentry/sentry-java/pull/4933), [#&#8203;5037](https://github.com/getsentry/sentry-java/pull/5037)) - Added Tombstone integration that detects native crashes using `ApplicationExitInfo.REASON_CRASH_NATIVE` on Android 12+ - Crashes enriched with Tombstones contain more crash details and detailed thread info - Tombstone and NDK integrations are now automatically merged into a single crash event, eliminating duplicate reports - To enable it, add the integration in your Sentry initialization: ```kotlin SentryAndroid.init(context, options -> { options.isTombstoneEnabled = true }) ``` or in the `AndroidManifest.xml` using: ```xml <meta-data android:name="io.sentry.tombstone.enable" android:value="true" /> ``` ##### Fixes - Extract `SpotlightIntegration` to separate `sentry-spotlight` module to prevent insecure HTTP URLs from appearing in release APKs ([#&#8203;5064](https://github.com/getsentry/sentry-java/pull/5064)) - **Breaking:** Users who enable Spotlight must now add the `io.sentry:sentry-spotlight` dependency: ```kotlin dependencies { debugImplementation("io.sentry:sentry-spotlight:<version>") } ``` - Fix scroll target detection for Jetpack Compose ([#&#8203;5017](https://github.com/getsentry/sentry-java/pull/5017)) - No longer fork Sentry `Scopes` for `reactor-kafka` consumer poll `Runnable` ([#&#8203;5080](https://github.com/getsentry/sentry-java/pull/5080)) - This was causing a memory leak because `reactor-kafka`'s poll event reschedules itself infinitely, and each invocation of `SentryScheduleHook` created forked scopes with a parent reference, building an unbounded chain that couldn't be garbage collected. - Fix cold/warm app start type detection for Android devices running API level 34+ ([#&#8203;4999](https://github.com/getsentry/sentry-java/pull/4999)) ##### Internal - Establish new native exception mechanisms to differentiate events generated by `sentry-native` from `ApplicationExitInfo`. ([#&#8203;5052](https://github.com/getsentry/sentry-java/pull/5052)) - Set `write` permission for `statuses` in the changelog preview GHA workflow. ([#&#8203;5053](https://github.com/getsentry/sentry-java/pull/5053)) ##### Dependencies - Bump Native SDK from v0.12.3 to v0.12.4 ([#&#8203;5061](https://github.com/getsentry/sentry-java/pull/5061)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0124) - [diff](https://github.com/getsentry/sentry-native/compare/0.12.3...0.12.4) ### [`v8.31.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8310) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.30.0...8.31.0) ##### Features - Added `io.sentry.ndk.sdk-name` Android manifest option to configure the native SDK's name ([#&#8203;5027](https://github.com/getsentry/sentry-java/pull/5027)) - Replace `sentry.trace.parent_span_id` attribute with `spanId` property on `SentryLogEvent` ([#&#8203;5040](https://github.com/getsentry/sentry-java/pull/5040)) ##### Fixes - Only attach user attributes to logs if `sendDefaultPii` is enabled ([#&#8203;5036](https://github.com/getsentry/sentry-java/pull/5036)) - Reject new logs if `LoggerBatchProcessor` is shutting down ([#&#8203;5041](https://github.com/getsentry/sentry-java/pull/5041)) - Downgrade protobuf-javalite dependency from 4.33.1 to 3.25.8 ([#&#8203;5044](https://github.com/getsentry/sentry-java/pull/5044)) ##### Dependencies - Bump Native SDK from v0.12.2 to v0.12.3 ([#&#8203;5012](https://github.com/getsentry/sentry-java/pull/5012)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0123) - [diff](https://github.com/getsentry/sentry-native/compare/0.12.2...0.12.3) ### [`v8.30.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8300) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.29.0...8.30.0) ##### Fixes - Fix ANRs when collecting device context ([#&#8203;4970](https://github.com/getsentry/sentry-java/pull/4970)) - **IMPORTANT:** This disables collecting external storage size (total/free) by default, to enable it back use `options.isCollectExternalStorageContext = true` or `<meta-data android:name="io.sentry.external-storage-context" android:value="true" />` - Fix `NullPointerException` when reading ANR marker ([#&#8203;4979](https://github.com/getsentry/sentry-java/pull/4979)) - Report discarded log in batch processor as `log_byte` ([#&#8203;4971](https://github.com/getsentry/sentry-java/pull/4971)) ##### Improvements - Expose `MAX_EVENT_SIZE_BYTES` constant in SentryOptions ([#&#8203;4962](https://github.com/getsentry/sentry-java/pull/4962)) - Discard envelopes on `4xx` and `5xx` response ([#&#8203;4950](https://github.com/getsentry/sentry-java/pull/4950)) - This aims to not overwhelm Sentry after an outage or load shedding (including HTTP 429) where too many events are sent at once ##### Features - Add a Tombstone integration that detects native crashes without relying on the NDK integration, but instead using `ApplicationExitInfo.REASON_CRASH_NATIVE` on Android 12+. ([#&#8203;4933](https://github.com/getsentry/sentry-java/pull/4933)) - Currently exposed via options as an *internal* API only. - If enabled alongside the NDK integration, crashes will be reported as two separate events. Users should enable only one; deduplication between both integrations will be added in a future release. - Add Sentry Metrics to Java SDK ([#&#8203;5026](https://github.com/getsentry/sentry-java/pull/5026)) - Metrics are enabled by default - APIs are namespaced under `Sentry.metrics()` - We offer the following APIs: - `count`: A metric that increments counts - `gauge`: A metric that tracks a value that can go up or down - `distribution`: A metric that tracks the statistical distribution of values - For more details, see the Metrics documentation: <https://docs.sentry.io/product/explore/metrics/getting-started/> ### [`v8.29.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8290) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.28.0...8.29.0) ##### Fixes - Support serialization of primitive arrays (boolean\[], byte\[], short\[], char\[], int\[], long\[], float\[], double\[]) ([#&#8203;4968](https://github.com/getsentry/sentry-java/pull/4968)) - Session Replay: Improve network body parsing and truncation handling ([#&#8203;4958](https://github.com/getsentry/sentry-java/pull/4958)) ##### Internal - Support `metric` envelope item type ([#&#8203;4956](https://github.com/getsentry/sentry-java/pull/4956)) ### [`v8.28.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8280) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.27.1...8.28.0) ##### Features - Android: Flush logs when app enters background ([#&#8203;4951](https://github.com/getsentry/sentry-java/pull/4951)) - Add option to capture additional OkHttp network request/response details in session replays ([#&#8203;4919](https://github.com/getsentry/sentry-java/pull/4919)) - Depends on `SentryOkHttpInterceptor` to intercept the request and extract request/response bodies - To enable, add url regexes via the `io.sentry.session-replay.network-detail-allow-urls` metadata tag in AndroidManifest ([code sample](https://github.com/getsentry/sentry-java/blob/b03edbb1b0d8b871c62a09bc02cbd8a4e1f6fea1/sentry-samples/sentry-samples-android/src/main/AndroidManifest.xml#L196-L205)) - Or you can manually specify SentryReplayOptions via `SentryAndroid#init`: *(Make sure you disable the auto init via manifest meta-data: io.sentry.auto-init=false)* <details> <summary>Kotlin</summary> ```kotlin SentryAndroid.init( this, options -> { // options.dsn = "https://[email protected]/0" // options.sessionReplay.sessionSampleRate = 1.0 // options.sessionReplay.onErrorSampleRate = 1.0 // .. options.sessionReplay.networkDetailAllowUrls = listOf(".*") options.sessionReplay.networkDetailDenyUrls = listOf(".*deny.*") options.sessionReplay.networkRequestHeaders = listOf("Authorization", "X-Custom-Header", "X-Test-Request") options.sessionReplay.networkResponseHeaders = listOf("X-Response-Time", "X-Cache-Status", "X-Test-Response") }); ``` </details> <details> <summary>Java</summary> ```java SentryAndroid.init( this, options -> { options.getSessionReplay().setNetworkDetailAllowUrls(Arrays.asList(".*")); options.getSessionReplay().setNetworkDetailDenyUrls(Arrays.asList(".*deny.*")); options.getSessionReplay().setNetworkRequestHeaders( Arrays.asList("Authorization", "X-Custom-Header", "X-Test-Request")); options.getSessionReplay().setNetworkResponseHeaders( Arrays.asList("X-Response-Time", "X-Cache-Status", "X-Test-Response")); }); ``` </details> ##### Improvements - Avoid forking `rootScopes` for Reactor if current thread has `NoOpScopes` ([#&#8203;4793](https://github.com/getsentry/sentry-java/pull/4793)) - This reduces the SDKs overhead by avoiding unnecessary scope forks ##### Fixes - Fix missing thread stacks for ANRv1 events ([#&#8203;4918](https://github.com/getsentry/sentry-java/pull/4918)) - Fix handling of unparseable mime-type on request filter ([#&#8203;4939](https://github.com/getsentry/sentry-java/pull/4939)) ##### Internal - Support `span` envelope item type ([#&#8203;4935](https://github.com/getsentry/sentry-java/pull/4935)) ##### Dependencies - Bump Native SDK from v0.12.1 to v0.12.2 ([#&#8203;4944](https://github.com/getsentry/sentry-java/pull/4944)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0122) - [diff](https://github.com/getsentry/sentry-native/compare/0.12.1...0.12.2) ### [`v8.27.1`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8271) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.27.0...8.27.1) ##### Fixes - Do not log if `sentry.properties` in rundir has not been found ([#&#8203;4929](https://github.com/getsentry/sentry-java/pull/4929)) ### [`v8.27.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8270) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.26.0...8.27.0) ##### Features - Implement OpenFeature Integration that tracks Feature Flag evaluations ([#&#8203;4910](https://github.com/getsentry/sentry-java/pull/4910)) - To make use of it, add the `sentry-openfeature` dependency and register the the hook using: `openFeatureApiInstance.addHooks(new SentryOpenFeatureHook());` - Implement LaunchDarkly Integrations that track Feature Flag evaluations ([#&#8203;4917](https://github.com/getsentry/sentry-java/pull/4917)) - For Android, please add `sentry-launchdarkly-android` as a dependency and register the `SentryLaunchDarklyAndroidHook` - For Server / JVM, please add `sentry-launchdarkly-server` as a dependency and register the `SentryLaunchDarklyServerHook` - Detect oversized events and reduce their size ([#&#8203;4903](https://github.com/getsentry/sentry-java/pull/4903)) - You can opt into this new behaviour by setting `enableEventSizeLimiting` to `true` (`sentry.enable-event-size-limiting=true` for Spring Boot `application.properties`) - You may optionally register an `onOversizedEvent` callback to implement custom logic that is executed in case an oversized event is detected - This is executed first and if event size was reduced sufficiently, no further truncation is performed - In case we detect an oversized event, we first drop breadcrumbs and if that isn't sufficient we also drop stack frames in order to get an events size down ##### Improvements - Do not send manual log origin ([#&#8203;4897](https://github.com/getsentry/sentry-java/pull/4897)) ##### Dependencies - Bump Spring Boot 4 to GA ([#&#8203;4923](https://github.com/getsentry/sentry-java/pull/4923)) ### [`v8.26.0`](https://github.com/getsentry/sentry-java/blob/HEAD/CHANGELOG.md#8260) [Compare Source](https://github.com/getsentry/sentry-java/compare/8.25.0...8.26.0) ##### Features - Add feature flags API ([#&#8203;4812](https://github.com/getsentry/sentry-java/pull/4812)) and ([#&#8203;4831](https://github.com/getsentry/sentry-java/pull/4831)) - You may now keep track of your feature flag evaluations and have them show up in Sentry. - Top level API (`Sentry.addFeatureFlag("my-feature-flag", true);`) writes to scopes and the current span (if there is one) - It is also possible to use API on `IScope`, `IScopes`, `ISpan` and `ITransaction` directly - Feature flag evaluations tracked on scope(s) will be added to any errors reported to Sentry. - The SDK keeps the latest 100 evaluations from scope(s), replacing old entries as new evaluations are added. - For feature flag evaluations tracked on spans: - Only 10 evaluations are tracked per span, existing flags are updated but new ones exceeding the limit are ignored - Spans do not inherit evaluations from their parent - Drop log events once buffer hits hard limit ([#&#8203;4889](https://github.com/getsentry/sentry-java/pull/4889)) - If we have 1000 log events queued up, we drop any new logs coming in to prevent OOM - Remove vendored code and upgrade to async profiler 4.2 ([#&#8203;4856](https://github.com/getsentry/sentry-java/pull/4856)) - This adds support for JDK 23+ ##### Fixes - Removed SentryExecutorService limit for delayed scheduled tasks ([#&#8203;4846](https://github.com/getsentry/sentry-java/pull/4846)) - Fix visual artifacts for the Canvas strategy on some devices ([#&#8203;4861](https://github.com/getsentry/sentry-java/pull/4861)) - \[Config] Trim whitespace on properties path ([#&#8203;4880](https://github.com/getsentry/sentry-java/pull/4880)) - Only set `DefaultReplayBreadcrumbConverter` if replay is available ([#&#8203;4888](https://github.com/getsentry/sentry-java/pull/4888)) - Session Replay: Cache connection status instead of using blocking calls ([#&#8203;4891](https://github.com/getsentry/sentry-java/pull/4891)) - Fix log count in client reports ([#&#8203;4869](https://github.com/getsentry/sentry-java/pull/4869)) - Fix profilerId propagation ([#&#8203;4833](https://github.com/getsentry/sentry-java/pull/4833)) - Fix profiling init for Spring and Spring Boot w Agent auto-init ([#&#8203;4815](https://github.com/getsentry/sentry-java/pull/4815)) - Copy active span on scope clone ([#&#8203;4878](https://github.com/getsentry/sentry-java/pull/4878)) ##### Improvements - Fallback to distinct-id as user.id logging attribute when user is not set ([#&#8203;4847](https://github.com/getsentry/sentry-java/pull/4847)) - Report Timber.tag() as `timber.tag` log attribute ([#&#8203;4845](https://github.com/getsentry/sentry-java/pull/4845)) - Session Replay: Add screenshot strategy serialization to RRWeb events ([#&#8203;4851](https://github.com/getsentry/sentry-java/pull/4851)) - Report discarded log bytes ([#&#8203;4871](https://github.com/getsentry/sentry-java/pull/4871)) - Log why a properties file was not loaded ([#&#8203;4879](https://github.com/getsentry/sentry-java/pull/4879)) ##### Dependencies - Bump Native SDK from v0.11.3 to v0.12.1 ([#&#8203;4859](https://github.com/getsentry/sentry-java/pull/4859)) - [changelog](https://github.com/getsentry/sentry-native/blob/master/CHANGELOG.md#0121) - [diff](https://github.com/getsentry/sentry-native/compare/0.11.3...0.12.1) - Bump Spring Boot 4 to RC2 ([#&#8203;4886](https://github.com/getsentry/sentry-java/pull/4886)) </details> --- ### Configuration 📅 **Schedule**: (in timezone America/Toronto) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNzAuMTgiLCJ1cGRhdGVkSW5WZXIiOiI0My4xNzAuMTgiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbInJlbm92YXRlIl19-->
renovate-bot added 1 commit 2026-05-09 21:02:20 -04:00
Update dependency io.sentry:sentry to v8.41.0
CI / Package (pull_request) Successful in 2m56s
CI / Docker Build and Push (main) (pull_request) Has been skipped
CI / Docker Build and Push (release) (pull_request) Has been skipped
386fbe313e
anthorob was assigned by renovate-bot 2026-05-09 21:02:20 -04:00
renovate-bot changed title from Update dependency io.sentry:sentry to v8.41.0 to Update dependency io.sentry:sentry to v8.41.0 - autoclosed 2026-05-13 00:02:57 -04:00
renovate-bot closed this pull request 2026-05-13 00:02:57 -04:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anthorob/netneutrality#15