NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1248 most downloaded on pub.dev
An integration which adds support for recording log from the logging package.
Last release 6 days ago
02 Oct 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
210 releases · first in 2021
One column per quarter.
Fix SIGSEV, SIGABRT and SIGBUS crashes happening after/around the August Google Play System update, see #2955 for more details (fix provided by Native
Fixes release of drift & hive and adds missing integration & sdk version information in the hub options
Fixes setting the correct locale to contexts with navigatorKey
PlatformException.message will get nicely formatted too when present (#1716)attachScreenshotOnlyWhenResumed to options (#1700)session mode at 1 hour deadlineLog warning if both tracesSampleRate and tracesSampler are set
Session Replay Public Beta (#3339)
To enable Replay use the sessionReplay.sessionSampleRate or sessionReplay.errorSampleRate experimental options.
import io.sentry.SentryReplayOptions
import io.sentry.android.core.SentryAndroid
SentryAndroid.init(context) { options ->
// Currently under experimental options:
options.experimental.sessionReplay.sessionSampleRate = 1.0
options.experimental.sessionReplay.errorSampleRate = 1.0
// To change default redaction behavior (defaults to true)
options.experimental.sessionReplay.redactAllImages = true
options.experimental.sessionReplay.redactAllText = true
// To change quality of the recording (defaults to MEDIUM)
options.experimental.sessionReplay.quality = SentryReplayOptions.SentryReplayQuality.MEDIUM // (LOW|MEDIUM|HIGH)
}
To learn more visit Sentry's Mobile Session Replay documentation page.
Session: missing mechanism.handled is considered crash
User.segment. Use a custom tag or context instead. (#3511)Add Sampling Decision to Trace Envelope Header
fatal even if debug is disabled (#1635)SentryUser and Breadcrumb before sending over method channel (#1591)Trace origin indicates what created a trace or a span. Not all transactions and spans contain enough information to tell whether the user or what prec
Trace origin indicates what created a trace or a span. Not all transactions and spans contain enough information to tell whether the user or what precisely in the SDK created it. Origin solves this problem. The SDK now sends origin for transactions and spans.
appHangTimeoutInterval to SentryFlutterOptions (#1568)maxResponseBodySizedio packageAdd apiTarget field to SentryRequest and data field to SentryResponse
Enums use its name instead of non exhaustive switches (##1506)
Check if the Native SDKs are enabled when using autoInitializeNativeSdk=false
autoInitializeNativeSdk=false (#1489)Future instead of executing right away (#1476)
SentryAssetBundle returns Future by default
Deprecate extra in favor of contexts
sent_at to envelope header (#1428)minSdkVersion is now 19 (Flutter already defines 19-20 as best effort)extra in favor of contexts (#1435)Fallback Uri parsing to unknown if its invalid
unknown if its invalid (#1414)Add SentryIOOverridesIntegration that automatically wraps File into SentryFile
SentryIOOverridesIntegration that automatically wraps File into SentryFile (#1362)import 'package:sentry_file/sentry_file.dart';
// SDK init. options
options.addIntegration(SentryIOOverridesIntegration());
enableTracing option (#1395)
null meaning existing behaviour remains unchanged (setting either tracesSampleRate or tracesSampler enables performance).true, performance is enabled, even if no tracesSampleRate or tracesSampler have been configured.true, sampler will use default sample rate of 1.0, if no tracesSampleRate is set.false performance is disabled, regardless of tracesSampleRate and tracesSampler options.// SDK init. options
options.enableTracing = true;
connectionTimeout and readTimeout to Android (#1397)// SDK init. options
options.connectionTimeout = Duration(seconds: 10);
options.readTimeout = Duration(seconds: 10);
name and geo in native plugins (#1393)Sentry.configureScope(
(scope) => scope.setUser(SentryUser(
id: '1234',
name: 'Jane Doe',
email: 'jane.doe@example.com',
geo: SentryGeo(
city: 'Vienna',
countryCode: 'AT',
region: 'Austria',
))),
);
import 'dart:convert';
options.beforeSend = (event, {hint}) {
final text = 'This event should not be sent happen in prod. Investigate.';
final textAttachment = SentryAttachment.fromIntList(
utf8.encode(text),
'event_info.txt',
contentType: 'text/plain',
);
hint?.attachments.add(textAttachment);
return event;
};
FutureOr<T> if it's not a future (#1385)enableScopePersistence option to disable PersistingScopeObserver used for ANR reporting which may increase performance overhead. Defaults to true (#3218)
Runnable/Callable/Supplier is executed instead of setting it to the hub that was used on the thread where the Runnable/Callable/Supplier was created.Fix breadcrumbs not being sent on Android web
Fix Dart web builds breaking due to dart:io imports when using SentryIsolate or SentryIsolateExtension
SentryUserInteractionWidget: add support for PopupMenuButton and PopupMenuItem
options.isEnableSpotlight = true to enable SpotlightRuntimeException is thrown by the system (#3212)
RuntimeInit$MethodAndArgsCaller to have them split up properly by the original root cause exceptionSanitize sensitive data from URLs (span desc, span data, crumbs, client errors)
io.sentry.profiling.enable-app-start, other than the already existing io.sentry.traces.profiling.sample-rate.isForNextAppStart flag, to adjust startup profiling sampling programmatically.
Relevant PRs:OnFrameMetricsAvailableListener (#3111)mechanism:AppExitInfoHostnameVerifier option as it's flagged by security tools of some app stores (#3150)
ITransportFactory through SentryOptions.setTransportFactory(), where you can copy over most of the parts like HttpConnection and AsyncHttpTransport from the SDK with necessary modificationsDioErrorExtractor no longer extracts DioError.stackTrace which is done via DioStackTraceExtractor instead
monitor/check_in in client reports and rate limiter (#3096)graphql-java version 21 (#3090)SentryJobListenerrelease and other fields for ANRs reported with mechanism:AppExitInfo (#3074)opentelemetry-sdk to 1.33.0 and opentelemetry-javaagent to 1.32.0 (#3112)Bump Cocoa SDK from v8.0.0 to v8.3.1
enable-backpressure-handling=true.tracesSampleRate automatically.tracesSampleRate to its original value.4.1.0 or neweroptions.isEnablePerformanceV2 = trueSentryOkHttpEventListener even without transactions (#3087)io.sentry.exception.SentryHttpClientException from obfuscation to display proper issue title on Sentry (#3093)Remove deprecated fields from the Scope class.
500-599 if captureFailedRequests is enabledthrowable to SentryExceptionHint data bag (#1136)Hint for screenshots (#1165)toImage with toImageSync for Flutter >= 3.7 (1268)FutureOr<T> if it's not a future. This should marginally improve the performance (#1310)StackTrace.empty with StackTrace.current (#1183)sentry_dio to dio v5 (#1282)Scope class.
user(SentryUser? user), using the setUser(SentryUser? user) instead.attachements, using the attachments instead.SentryFlutterOptions class.
anrTimeoutIntervalMillis, using the anrTimeoutInterval instead.autoSessionTrackingIntervalMillis, using the autoSessionTrackingInterval instead.device context
options.attachThreadssentryClientName instead of sdk.identifier (#1135)BindingUtils to BindingWrapper to enable the use of custom bindings (#1184)Version 7 of the Sentry Android/Java SDK brings a variety of features and fixes. The most notable changes are:
minSdk level to 19 (Android 4.4)Sentry.getSpan now returns the root transaction, which should improve the span hierarchy and make it leanersentry-okhttp artifact is unbundled from Android and can be used in pure JVM-only appsPlatform Exception Event Processor
500-599 if captureFailedRequests is enabledAdd In Foreground to App context
### Fixes - isWeb check for WASM
Error Cause Extractor (#1198, #1236)
Remove deprecated fields from the Scope class.
Scope class.
user(SentryUser? user), using the setUser(SentryUser? user) instead.attachements, using the attachments instead.SentryFlutterOptions class.
anrTimeoutIntervalMillis, using the anrTimeoutInterval instead.autoSessionTrackingIntervalMillis, using the autoSessionTrackingInterval instead.Rename APM tracking feature flags to tracing
Mark transaction as internal_error in case of unhandled errors
Removed various deprecated fields (#1036):
Hint data bag (#1136)Hint for screenshots (#1165)SentryOptions related parameters from classes which also take Hub as a parameter (#816)StackTrace.empty with StackTrace.current (#1183)device context
options.attachThreadssentryClientName instead of sdk.identifier (#1135)BindingUtils to BindingWrapper to enable the use of custom bindings (#1184)Add proguard_uui property to SentryFlutterOptions to set proguard information at runtime
lock attribute to the SentryStackFrame protocol to better highlight offending frames in the UI (#2761)api_target to Request and data to Response Protocols (#2775)String.join in Baggage as it requires API level 26 (#2778)Implement loadStructuredBinaryData from updated AssetBundle
sentry-android-sqlite integration (#2722)
androidx.sqlite database instrumentation in the Sentry Android Gradle pluginandroidx.sqlite databases.
SupportSQLiteOpenHelper instance into SentrySupportSQLiteOpenHelper(myHelper) if you're not using the Sentry Android Gradle plugin and still benefit from performance auto-instrumentation.SentryExecutorService in 6.19.0 which caused the application to hang on shutdown unless Sentry.close() was called. By using daemon threads we no longer block shutdown.ComposeViewHierarchyExporter class (#2743)Set client name with version in Android SDK
intl is now more version permissive (>=0.17.0 <1.0.0)
mechanism:AppExitInfo.mechanism:ANR.TransactionOptions, ITransaction and IHub methods allowing consumers modify start/end timestamp of transactions and spans (#2701)configureScope instead of withScope in Hub.close(). This ensures that the main scope releases the in-memory data when closing a hub instance. (#2688)enableUserInteractionTracing sometimes finds the wrong widget
Missing slow and frozen frames for Auto transactions
Tracing for File IO integration
Log4j2Plugins.datUser and Breadcrumb from map (#2614)sent_at to envelope header item (#2638)Capture Future errors for Flutter Web automatically
name and geo to User (#2556)Add request context to HttpException, SocketException and NetworkImageLoadException
HttpException, SocketException and NetworkImageLoadException (#1118)SocketException and FileSystemException with OSErrors report the OSError as root exception (#1118)enableUserInteractionBreadcrumbs on Android when enableAutoNativeBreadcrumbs is disabled (#1131)sentry.enable-tracing=true to your application.propertiesSentryAppender to specific loggers instead of the ROOT logger (#2173)
"sentry.logging.loggers[0]=foo.bar and "sentry.logging.loggers[1]=baz in your application.propertiesHandlerExceptionResolver, SentryWebExceptionHandler) in your dashboards please update them to use the new types.server.servlet.session.cookie.name and filter it outbeforeSend / beforeSendTransaction throws (#2591)Bump Cocoa SDK from v7.30.1 to v7.30.2
Merging of integrations and packages
enableTracing option (#2530)
null meaning existing behaviour remains unchanged (setting either tracesSampleRate or tracesSampler enables performance).true, performance is enabled, even if no tracesSampleRate or tracesSampler have been configured.false performance is disabled, regardless of tracesSampleRate and tracesSampler options.ThreadLocalAccessor for propagating Sentry hub with reactor / WebFlux (#2570)
io.micrometer:context-propagation:1.0.2+ as well as Spring Boot 3.0.3+sentry.reactive.thread-local-accessor-enabled=trueinApp flag for stack frames undecided in SDK if unsure and let ingestion decide instead (#2547)0.0 error sample rate (#2573)compileOnly in sentry-compose-android (#2578)
androidx.navigation:navigation-compose:androidx.compose.runtime:runtime:androidx.compose.ui:ui:Capture response information in SentryHttpClient
main flag to threads and in_foreground flag for app contexts (#2516)Avoid dependency conflict with package_info_plus v3
Use PlatformDispatcher.onError in Flutter 3.3
abnormal_mechanism to sessions for ANR rate calculationAvoid dependency conflict with package_info_plus v2
Bump Android SDK from v6.4.3 to v6.5.0 (#1062, #1064)
Handle traces sampler exception
traceOptionsRequests option to disable tracing of OPTIONS requests (#2453)Scope cloning method was not setting the user
OpenTelemetryLinkErrorEventProcessor for Spring Boot (#2429)Objects class (#2436)Allow routeNameExtractor to set transaction names
blocked_main_thread and call_stack to File I/O spans to detect performance issues (#2382)Scope.clone incorrectly accesses tags
6.9.0 so we released the same code again as 6.9.1 including OpenTelemetry modulesBump Flutter's min. supported version from 1.17.0 to 2.0.0
This should not break anything since the Dart's min. version is already 2.12.0 and Flutter 2.0.0 uses Dart 2.12.0
canonicalName in Fragment Integration for better de-obfuscation (#2379)sentry-trace and baggage headers (#2385)Missing OS context for iOS events
Maps with Key Object, Object would fail during serialization if not String, Object
SentryRequest in DioEventProcessor #933event.modules with dependencies metadata (#2324)Context Escape with ScopeCallback
Your coding agent can read these notes before it upgrades. Set up the MCP server →