Fixes
- Session Replay: Backfill release, environment and SDK info for replays sent on the next launch after the app was killed or crashed (#6253)
- Fix SDK callback error handling (#6140)
- Drop telemetry when a
beforeSend*callback throws and report it usingDiscardReason.CALLBACK_ERROR. - Drop transactions when
tracesSamplerthrows instead of inheriting the parent sampling decision or falling back totracesSampleRate(#6163). - Drop spans when
beforeSpanthrows without disrupting requests, covering OkHttp, OpenFeign, GraphQL, Ktor, and Apollo—including Apollo 5 (#6167, #6238). - Drop telemetry and record
callback_errorwhen a customer event processor throws instead of continuing with a potentially partially processed item. SDK-owned processor failures are logged and processing continues. - Drop breadcrumbs when
beforeBreadcrumbthrows instead of storing exception details on the breadcrumb. - No longer fail Spring requests when a
TransactionNameProviderthrows, falling back to<unlabeled transaction>(#6241). - No longer fail Spring requests when a
SentryUserProviderthrows and overwrite the user with an empty user object (#6240). - Disable profiling when
profilesSamplerthrows instead of falling back toprofilesSampleRateor inheriting the parent profiling decision (#6164). - Report attached profiles dropped by transaction callback errors as
callback_errorin client reports andOnDiscardCallback(#6166). - Skip replay capture when
beforeErrorSamplingthrows while retaining the error event (#6165). - Skip Android screenshots or view hierarchies when their capture callbacks throw while retaining the error event (#6167).
- Keep the Android feedback form available when its options configurator throws (#6239).
- Isolate nonfatal callback throwables while continuing to propagate fatal JVM errors (#6251).
- Drop telemetry when a
Internal
- Hold the hostname cache on
SentryOptionsinstead of a static singleton (#6117)