Breaking Changes
- Android:
AnrV2Integration,AnrProfilingIntegration,WindowContentChangedCallback, the deprecatedSentryUserFeedbackButtonandSentryUserFeedbackDialog.Builder, and the internalsentry-android-coreclasses are nowfinal, andActivityLifecycleCallbacksAdapteris nowabstract(#6494)
Features
- Connect Android traces with web content in a
WebViewusingSentryWebViewTracing.addTracePropagation(webView, "example.com")(#6395)- Requires the
androidx.webkit:webkitdependency. Only list hosts whose content you control. - Call it on the main thread before each page load you want connected.
- Set
options.webViewTracing.allowedHosts, or theio.sentry.webview-tracing.allowed-hostsmanifest entry, to calladdTracePropagation(webView)without passing hosts (#6516) - See the WebView docs for details.
- Requires the
- Monitor every Spring
@Scheduledmethod with Sentry Crons by settingsentry.monitor-scheduled-tasks=true, without adding@SentryCheckInto each method. Sentry creates each monitor from the method's@Scheduledschedule. Exclude methods withsentry.exclude-scheduled-tasks(#6275, #6276, #6277) - Quartz
SentryJobListenercan send a monitor config derived from the trigger with check-ins, so Sentry creates or updates the monitor from code. Set thesentry-upsert-monitor-configjob or trigger data key to"true"to send the schedule (#6216) - Send a monitor config derived from Spring
@Scheduledwith@SentryCheckIncheck-ins, so Sentry creates or updates the monitor from code. Set@SentryCheckIn(upsertMonitorConfig = true)to send the schedule (#6215) - Sentry OpenTelemetry integrations now honor
OTEL_BSP_SCHEDULE_DELAY(otel.bsp.schedule.delay) for how often spans are sent to Sentry, instead of always waiting 5 seconds (#6388) - Add experimental, opt-in out-of-process crash reporting on Android (#6347)
- To enable it, add the
sentry-android-ndk-outprocdependency and excludesentry-native-ndk. Requires Android 11 (API level 30) or later. - See the NDK docs for details.
- To enable it, add the
Behavioral Changes
- Gradle builds now resolve all Sentry SDK modules to the same version, the highest one present, because every module depends on
sentry-bomas a platform (#6466)- Before, a build could mix module versions, for example a newer
sentry-android-corewith an oldersentry-android-fragment, which failed at runtime. Maven builds resolve as before. sentry-bomnow also includessentry-android-distribution.
- Before, a build could mix module versions, for example a newer
Fixes
- Capture scroll breadcrumbs for
LazyColumn,LazyRow, lazy grids, andPageron Jetpack Compose foundation 1.10+ (#6548) - Prevent the main thread from potentially hanging during app start or when returning to the foreground if Android is slow to register the SDK's network or telephony listeners.
Sentry.init, Session Replay, and capturing events no longer wait for that registration (#6537) - Add opt-in support for matching GraphQL ignored error types against classification specifications via
sentry.graphql.enable-specification-error-type-filtering(#6092) - Session Replay: Fix
SentryOkHttpInterceptorhanging forever on responses whose body has no known length, such as Server-Sent Events or a gzipped response, when network details are enabled for the URL (#6231) - Session Replay:
SentryOkHttpInterceptornow captures network request and response details only while Session Replay is recording or buffering (#6486) - Stop marking an OkHttp call span as failed when a connection attempt to one of the host's addresses fails but OkHttp connects on another (#6472)
- Stop blocking the main thread while the frame metrics thread starts when the first activity transaction begins (#6500)
- On a busy device during cold start this could stall the launcher activity's
onCreatefor hundreds of milliseconds.
- On a busy device during cold start this could stall the launcher activity's
- Do not inspect the response body of streaming Apollo 3 and 4 responses (
multipart/mixed,text/event-stream) for failed requests, which blocked@deferand@stream(#6432) - Session Replay: Measure how long touch moves are batched on a monotonic clock, so a device time change during a swipe no longer drops its positions, delays them, or stretches their timing (#6538)