chore(deps): update Sentry SDK to v8.51.0 - #275
Open
github-actions[bot] wants to merge 1 commit into
Open
Conversation
github-actions
Bot
requested review from
adinauer,
markushi and
romtsn
as code owners
July 30, 2026 04:03
github-actions
Bot
force-pushed
the
deps/scripts/update-sentry-sdk.sh/8.51.0
branch
from
July 30, 2026 04:03
ce0efb6 to
0dfc959
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps scripts/update-sentry-sdk.sh from 8.34.1 to 8.51.0.
Auto-generated by a dependency updater.
Changelog
8.51.0
Features
ProfilingManager(Perfetto) for continuous profiling on API 35+ devices (#5251)ProfilingManagerwith Perfetto-based stack sampling, providing lower-overhead and more accurate profiles. No configuration change is required.Debug-based profiler.enableLegacyProfilingoption (defaulttrue) to disable the legacyDebug-based profiler. Setting it tofalsedisables continuous profiling on API < 35 devices as well as transaction-based profiling (profilesSampleRate/profilesSampler) on all devices, since transaction-based profiling is not supported by Perfetto.io.sentry.profiling.enable-legacy-profilingmanifest flag.Behavioral Changes
Sentry.init(#5792)SentryOptions.getOutboxPath()andSentryOptions.getCacheDirPath()are not guaranteed to exist onceSentry.initreturns.captureEnvelope— create the directory first, e.g.new File(outboxPath).mkdirs().Improvements
Fixes
checkCanRecordruns on the replay executor thread (#5837)MediaMuxerwhen the replay video encoder fails to start to avoid a resource leak (#5607)androidinstead ofjava) on ANR profile chunks so they are billed as UI Profile Hours rather than Continuous Profile Hours (#5836)ratelimit_backoffdiscarded events in client reports, so they no longer disappear from drop statistics. One event is recorded per buffer flush rather than per segment.Performance
mkdirs()calls off the init (main) thread (#5792)LifecycleWatchernow schedules the session-end task on the shared timer executor instead of creating a dedicatedjava.util.Timerthread (#5819)RateLimiternow schedules its rate-limit-lifted notifications on the shared timer executor instead of creating a dedicatedjava.util.Timerthread (#5814)Dependencies
8.50.1
Fixes
minCompileSdkto ourminSdk(21) instead of AGP 9's new default of the SDK's owncompileSdk(37), so apps that depend on the SDK aren't forced to raise theircompileSdk(#5823)8.50.0
Android 17 support
Fixes
Sentry.initby resolving the shake-detector accelerometer off the main thread (~1.75ms on a Pixel 10) (#5784)ApplicationExitInfoANR and native crash events captured before SDK initialization, without reusing options cached by a later app update (#5762)SentryTagModifierNode.isImportantForBoundsnow matches the default behavior and returnstrue(#5789)StackOverflowErrorwhen abeforeSend,beforeBreadcrumb,beforeSendLog, orbeforeEnvelopecallback triggers another capture (directly or through a logging integration such as Timber) (#5737)ThrowableProxywithLogEvent#getThrown()insentry-log4j2(#5751)Dependencies
8.49.0
Features
Session Replay: Record segment names (transaction names) (#5763)
Add
io.sentry:sentry-opentelemetry-bomto align Sentry OpenTelemetry modules with tested OpenTelemetry dependencies (#5629)dependencyManagement; explicit imports are applied after Spring Boot's implicit BOMdependencyManagement { imports { mavenBom("io.sentry:sentry-opentelemetry-bom:<sentry-version>") } }implementation(platform("io.sentry:sentry-opentelemetry-bom:<sentry-version>"))<dependencyManagement>block, or in the child POM when usingspring-boot-starter-parentFixes
buffermode (#5753)buffermode (#5754)tracePropagationTargetswhen injecting Sentry tracing headers through the OpenTelemetry OTLP propagator (#5656)Performance
Timerthread per transaction (#5670)Dependencies
which may downgrade the OpenTelemetry SDK, please have a look at the changelog entry above that explains how to use
sentry-opentelemetry-bom.8.48.0
Features
Add
Sentry.extendAppStart(),Sentry.finishExtendedAppStart(), andSentry.getExtendedAppStartSpan()to extend the app start measurement past the first frame for extra launch-time work on Android (#5604)options.isEnableStandaloneAppStartTracing). CallextendAppStart()inApplication.onCreateafter SDK init andfinishExtendedAppStart()when done:Add
trace_metric_bytedata category and record byte-level client reports when trace metrics are discarded (#5626)Expose sentry-native's heartbeat-based app-hang detection through
SentryAndroidOptions(#5623)setEnableNdkAppHangTracking(true)(disabled by default) and tune the timeout withsetNdkAppHangTimeoutIntervalMillis(...)(default5000ms), or theio.sentry.ndk.app-hang.enable/io.sentry.ndk.app-hang.timeout-interval-millismanifest entriessentry_app_hang_heartbeat()from the thread you want monitored. Independent of the JVM-based ANR detection (setAnrEnabled)Support the
io.sentry.tombstone.report-historicalmanifest option to enable historical tombstone reporting viaAndroidManifest.xml<meta-data>(#5683)Fixes
NoSuchMethodErrorfrom usingMath.floorDiv/Math.floorModoverloads that are unavailable on Java 8 (#5743)SentryDeviceInfoCacheso all threads spawned by the SDK are identifiable (#5684)Performance
Hintallocation inScope.addBreadcrumbwhen nobeforeBreadcrumbcallback is set (#5689)Thread.getName()name scan on every scope mutation (#5691)SentryExecutorServicequeued the prewarm work ahead of the first useful task, so it could only delay init work, never speed it up; the thread and class loading it warmed are paid identically by the first real task submitted right after.Dependencies
8.47.0
Behavioral Changes
SentryOkHttpInterceptor::interceptnow throwsIOException. This is a source-only and Java-only breaking change (#5654)Fixes
SentryGestureListeneralways started a UI transaction and only afterwards skipped binding it to the Scope when a manually-bound transaction already existed, leaving the new transaction to be dropped as an idle transaction without children.Scope.endSession()(#5657)ReplayIntegrationdue to persisting executor not being shut down (#5627)Modifier.sentryTag()or the Sentry Kotlin compiler plugin (#5672)Performance
getLocationOnScreenper view (#5595)SentryIdandSpanIdallocation overhead by replacing their per-instanceLazyEvaluator(and its lock) with a lightweight lazily-generatedString. (#5645)ReentrantLockbackingAutoClosableReentrantLockto avoid eager lock allocations for SDK objects that never contend duringSentryAndroid.init(#5643)8.46.0
Fixes
Behavioral Changes
getBreadcrumbs,getTags,getAttachments) are shared state and should not be mutated. (#5541)CombinedScopeView, we were returning a copy where mutations didn't show up in the underlying scopes.Dateobjects returned by SDK data model getters are shared state and should not be mutated. (#5603)Performance
Datecopies in SDK data model getters. (#5603)Breadcrumbdata map only when data is added. (#5598)JsonWriternesting stack size while preserving on-demand growth. (#5591)Calendarusage inDateUtilswith directDatecreation. (#5589)8.45.0
Features
app.starttransaction now reports why the OS started the process viaapp.vitals.start.reasontrace data (e.g.launcher,broadcast,service,content_provider), derived fromApplicationStartInfo.getReason(). You can search and group by this attribute in the Trace Explorer. (#5552)Fixes
System.nanoTime()for cron check-in duration measurement to avoid incorrect durations from wall-clock adjustments (#5611)getHistoricalProcessStartReasonsis called from an isolated or wrong-userId process (#5597)MediaMuxerwhen a replay segment has no encodable frames to avoid a resource leak (#5583)Dependencies
8.44.1
Fixes
FirstDrawDoneListenerleaking anOnGlobalLayoutListenerper registration (#5567)Features
SentrySQLiteDrivertosentry-android-sqlitefor instrumentingandroidx.sqlite.SQLiteDriver(#5563)SQLiteDrivertoSentrySQLiteDriver.create(...)androidx.sqlite:sqlite(2.5.0+) on runtime classpath (typically provided by Room or SQLDelight)Dependencies
8.44.0
Features
enableStandaloneAppStartTracingoption to send app start as a standalone transaction instead of attaching it as a child span of the first activity transaction (#5342)options.isEnableStandaloneAppStartTracing = trueor manifest meta-dataio.sentry.standalone-app-start-tracing.enableApp Startwith opapp.start, carrying the existing app start measurements and phase spans (process.load,contentprovider.load,application.load, activity lifecycle spans) as direct children of the roottraceIdas the firstui.loadactivity transaction so they remain linked in the trace viewImprovements
Datewith a unix timestamp inSentryNanotimeDateto improve performance (#5550)SentryNanotimeDateis now markedApiStatus.Internal. A new(long unixDateMillis, long nanos)constructor was added, whereunixDateMillisis milliseconds since the epoch. The existing(Date, long)constructor is retained but deprecated.Dependencies
Fixes
8.43.3
Fixes
getHistoricalProcessStartReasonsis called from an isolated or wrong-userId process (#5597)8.43.2
Improvements
java.net.URIwith custom string parsing for DSN (#5448)Fixes
VerifyErrorin Compose masking under DexGuard/R8 obfuscation (#5507)8.43.1
Fixes
trace_idsin replay events to enable searching replays by trace ID (#5473)8.43.0
Features
Session Replay: Add
ReplayFrameObserverfor observing captured replay frames (#5386)Parse ART memory and garbage collector info from ANR tombstones into ART context (#5428)
8.42.0
Features
options.isAttachRawTombstone = trueor manifest:<meta-data android:name="io.sentry.tombstone.attach-raw" android:value="true" />AndroidManifest.xmlusing theio.sentry.anr.report-historicalattribute (#5387)Dependencies
8.41.0
Features
SurfaceViewcontent (e.g. Unity, video players, maps) (#5333)options.sessionReplay.isCaptureSurfaceViews = true<meta-data android:name="io.sentry.session-replay.capture-surface-views" android:value="true" />Sentry.feedback()API forshow()andcapture()(#5349)Sentry.showUserFeedbackDialog()is deprecated in favor ofSentry.feedback().show()Sentry.captureFeedback()is deprecated in favor ofSentry.feedback().capture()Sentry.captureUserFeedback()andUserFeedbackare deprecated in favor ofSentry.feedback().capture()with the newFeedbacktypeSentryUserFeedbackDialogis deprecated in favor ofSentryUserFeedbackFormSentryUserFeedbackButton(View-based and Compose-based) (#5350)SentryUserFeedbackForm(#5353)sentry-kafkadependency and opt-in via the new option.options.setEnableQueueTracing(true)onSentry.initsentry.enable-queue-tracing=trueinapplication.propertieskafka-clientsdirectlyKafkaProducerviaSentryKafkaProducer.wrap(kafkaProducer)to getqueue.publishspansSentryKafkaConsumerTracing.withTracinghelper to instrument the consumer side manually.Fixes
Dependencies
8.40.0
Fixes
NoSuchMethodErrorforLayoutCoordinates.localBoundingBoxOf$defaulton Compose touch dispatch with AGP 8.13 andminSdk < 24(#5302)CacheControl.FORCE_CACHEcache misses (#5299)SentryGestureDetectorthread-safe and recycleVelocityTrackerper gesture (#5301)ui.clickbreadcrumbs when anotherWindow.CallbackwrapsSentryWindowCallback(#5300)Dependencies
8.39.1
Fixes
JsonObjectReaderandMapObjectReaderhanging indefinitely when deserialization errors leave the reader in an inconsistent state (#5293)WARNINGlogsERRORlogs8.39.0
Fixes
GestureDetectorCompatHandler/MessageQueue lock contention inSentryWindowCallback(#5138)Internal
Dependencies
8.38.0
Features
o123.ingest.sentry.io) and compares it with thesentry-org_idvalue 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.enableStrictTraceContinuation(defaultfalse): 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).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).Improvements
ActivityManagerif API < 35 on SDK init (#5275)8.37.1
Fixes
SentryContextStorage.root()with virtual threads and OpenTelemetry agent (#5234)8.37.0
Fixes
Features
CacheManagerandCachebeans to produce cache spanssentry.enable-cache-tracingtotrueto enable this featuresentry-jcachemodule (#5165)CachewithSentryJCacheWrapperto produce cache spansenableCacheTracingoption totrueto enable this featureIScopesStorageFactorytoSentryOptionsfor providing a customIScopesStorage, e.g. when the defaultThreadLocal-backed storage is incompatible with non-pinning thread models (#5199)beforeErrorSamplingcallback to Session Replay (#5214)onErrorSampleRateis checkedfalseskips replay capture entirely for that error; returningtrueproceeds with the normal sample rate checkDependencies
opentelemetryto1.60.1(was1.57.0)opentelemetry-instrumentationto2.26.0(was2.23.0)opentelemetry-instrumentation-alphato2.26.0-alpha(was2.23.0-alpha)opentelemetry-semconvto1.40.0(was1.37.0)opentelemetry-semconv-alphato1.40.0-alpha(was1.37.0-alpha)8.36.0
Features
options.getFeedbackOptions().setUseShakeGesture(true)or manifest meta-dataio.sentry.feedback.use-shake-gestureFixes
Dependencies
com.abovevacant:epitaphto0.1.1to avoid old D8/R8 dexing crashes in downstream Android builds on old AGP versions such as 7.4.x. (#5200)8.35.0
Fixes
Features
options.setAnrProfilingSampleRate(<sample-rate>)or AndroidManifest.xml:<meta-data android:name="io.sentry.anr.profiling.sample-rate" android:value="[0.0-1.0]" />Behavioral Changes
enableAnrFingerprintingoption which assigns static fingerprints to ANR events with system-only stacktracesjava.langorandroid.os) are grouped into a single issue instead of creating many separate issuesoptions.setEnableAnrFingerprinting(false)or AndroidManifest.xml:<meta-data android:name="io.sentry.anr.enable-fingerprinting" android:value="false" />