NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #693 most downloaded on NuGet
Official ASP.NET Core integration for Sentry - Open-source error tracking that helps developers monitor and fix crashes in real time.
Last release 2 days ago
21 Sep 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 59 of the last 60 stable releases
2 versions withdrawn
withdrawn after publishing
127 years old
207 releases · first in 1900
Hints now accept byte[] as attachment
One column per quarter.
Extended the SDK's CheckIn support by adding Release, Environment and Trace ID to the event. CheckIns created via the Hangfire integration now also au
HttpResponse.Content is no longer disposed by when using SentryHttpFailedRequestHandler on .NET Framework, which was causing an ObjectDisposedException when using Sentry with NSwag (#3306)CacheDirectoryPath (#3328)Metrics now honor any Rate Limits set in HTTP headers returned by Sentry
EnableNetworkEventBreadcrumbs can now be set on the Native Android options
SentryVersionNumber and SentryVersionString (#3278)SentryOptionsExtensions class - all the public methods moved directly to SentryOptions (#3195)initWithOptions function, it takes an Dictionary of key value. Possible values are dsn, enabled, environment, release, distenabled on the Clientenvironment on the Clientrelease on the Clientdist on the ClientNSError+SimpleConstructor.h to NSError+SentrySimpleConstructor.hDynamic Sampling Context not propagated correctly for HttpClient spans
ASP.NET Core: Blocking call detection. An event with the stack trace of the blocking call will be captured as event.
options.CaptureBlockingCalls = trueusing (new SuppressBlockingDetection())SentrySdk.CaptureCheckIn and an integration with Hangfire (#3128)ScopeExtensions class - all the public methods moved directly to Scope (#3186)Client.shared?.trackMemoryPressureAsEvent() to emit an event if application receives memory pressure notificationClient.shared?.enableAutomaticBreadcrumbTracking() now adds a breadcrumb in case of memory pressure notificationMetric unit names are now sanitized correctly. This was preventing some built in metrics from showing in the Sentry dashboard
The SDK can be disabled by setting options.Dsn = ""; By convention, the SDK allows the DSN set to string.Empty to be overwritten by the environment.
The SDK now automatically collects metrics coming from OpenTelemetry.Instrumentation.Runtime
maxEvents maxBreadcrumbs to increase the max count of offline stored assetsTo resolve conflicting types due to the SDK adding itself to the global usings:
Sentry.Constants has been renamed to Sentry.SentryConstants (#3125)To resolve conflicting types due to the SDK adding itself to the global usings:
To resolve conflicting types due to the SDK adding itself to the global usings:
Sentry.ISession has been renamed to Sentry.ISentrySession (#3110)Sentry.IJsonSerializable has been renamed to Sentry.ISentryJsonSerializable (#3116)Sentry.Session has been renamed to Sentry.SentrySession (#3110)Sentry.Attachment has been renamed to Sentry.SentryAttachment (#3116)Sentry.Hint has been renamed to Sentry.SentryHint (#3116)This major release includes many exciting new features including support for Profiling and Metrics(preview), AOT with Native Crash Reporting, Spotligh
This major release includes many exciting new features including support for Profiling and Metrics(preview), AOT with Native Crash Reporting, Spotlight, Screenshots on MAUI and much more. Details about these features and other changes are below.
We're dropping support for some of the old target frameworks, please check this GitHub Discussion for details on why.
Replace support for .NET Framework 4.6.1 with 4.6.2 (#2786)
.NET Framework 4.6.1 was announced on Nov 30, 2015. And went out of support over a year ago, on Apr 26, 2022.
Drop .NET Core 3.1 and .NET 5 support (#2787)
Dropped netstandard2.0 support for Sentry.AspNetCore (#2807)
Replace support for .NET 6 on mobile (e.g: net6.0-android) with .NET 7 (#2624)
.NET 6 on mobile has been out of support since May 2023 and with .NET 8, it's no longer possible to build .NET 6 Mobile specific targets.
For that reason, we're moving the mobile-specific TFMs from net6.0-platform to net7.0-platform.
Mobile apps still work on .NET 6 will pull the Sentry .NET 6, which offers the .NET-only features,
without native/platform-specific bindings and SDKs. See this ticket for more details.
MAUI dropped Tizen support (#2734)
If you're using sentry.io this change does not affect you.
This SDK version is compatible with a self-hosted version of Sentry 22.12.0 or higher. If you are using an older version of self-hosted Sentry (aka on-premise), you will need to upgrade.
HTTP-VERB /path (e.g. GET /home). Previously, the leading forward slash was missing for some endpoints. (#2808)SentryOptions.Dsn to null now throws ArgumentNullException during initialization. (#2655)CaptureFailedRequests by default (#2688)Sentry namespace to global usings when ImplicitUsings is enabled (#3043)
If you have conflicts, you can opt out by adding the following to your csproj:<PropertyGroup>
<SentryImplicitUsings>false</SentryImplicitUsings>
</PropertyGroup>
deadline_exceeded by the transaction. This is now handled by the Relay.
User.IpAddress is now set to {{auto}} by default, even when sendDefaultPII is disabled (#2981)
DiagnosticLogger signature for LogWarning changed to take the exception as the first parameter. That way it no longer gets mixed up with the TArgs. (#2987)If you have compilation errors you can find the affected types or overloads missing in the changelog entries below.
Sentry.User to Sentry.SentryUser (#3015)Sentry.Runtime to Sentry.SentryRuntime (#3016)Sentry.Span to Sentry.SentrySpan (#3021)Sentry.Transaction to Sentry.SentryTransaction (#3023)Cocoa to Native (#2940)EnableCocoaSdkTracing to EnableTracing (#2940)Android to Native (#2940)EnableAndroidSdkTracing and EnableAndroidSdkBeforeSend to EnableTracing and EnableBeforeSend respectively (#2940)iOS to Cocoa (#2929)ITransaction has been renamed to ITransactionTracer. You will need to update any references to these interfaces in your code to use the new interface names (#2731, #2870)DebugImage and DebugMeta moved to Sentry.Protocol namespace. (#2815)SentryClient.Dispose is no longer obsolete (#2842)ISentryClient.CaptureEvent overloads have been replaced by a single method accepting optional Hint and Scope parameters. You will need to pass hint as a named parameter from code that calls CaptureEvent without passing a scope argument. (#2749)TransactionContext and SpanContext constructors were updated. If you're constructing instances of these classes, you will need to adjust the order in which you pass parameters to these. (#2694, #2696)DiagnosticLogger signature for LogError and LogFatal changed to take the exception as the first parameter. That way it no longer gets mixed up with the TArgs. The DiagnosticLogger now also receives an overload for LogError and LogFatal that accepts a message only. (#2715)Distribution added to IEventLike. (#2660)StackFrame's ImageAddress, InstructionAddress, and FunctionId changed to long?. (#2691)DebugImage.ImageAddress changed to long?. (#2725)IDictionary rather than ConcurrentDictionary. The specific dictionary being used is an implementation detail. (#2729)WriteTo.Sentry() with no arguments will no longer attempt to initialize the SDK (it has optional arguments to configure the behavior of the Sink only). If you want to initialize Sentry at the same time you configure the Sentry Sink then you will need to use the overload of this method that accepts a DSN as the first parameter (e.g. WriteTo.Sentry("https://d4d82fc1c2c4032a83f3a29aa3a3aff@fake-sentry.io:65535/2147483647")). (#2928)SentrySinkExtensions.ConfigureSentrySerilogOptions is now internal. If you were using this method, please use one of the SentrySinkExtensions.Sentry extension methods instead. (#2902)
A number of [Obsolete] options have been removed (#2841)
BeforeSend - use SetBeforeSend instead.BeforeSendTransaction - use SetBeforeSendTransaction instead.BeforeBreadcrumb - use SetBeforeBreadcrumb instead.CreateHttpClientHandler - use CreateHttpMessageHandler instead.ReportAssemblies - use ReportAssembliesMode instead.KeepAggregateException - this property is no longer used and has no replacement.DisableTaskUnobservedTaskExceptionCapture method has been renamed to DisableUnobservedTaskExceptionCapture.DebugDiagnosticLogger - use TraceDiagnosticLogger instead.A number of iOS/Android-specific [Obsolete] options have been removed (#2856)
Distribution - use SentryOptions.Distribution instead.EnableAutoPerformanceTracking - use SetBeforeSendTransaction instead.EnableCoreDataTracking - use EnableCoreDataTracing instead.EnableFileIOTracking - use EnableFileIOTracing instead.EnableOutOfMemoryTracking - use EnableWatchdogTerminationTracking instead.EnableUIViewControllerTracking - use EnableUIViewControllerTracing instead.StitchAsyncCode - no longer available.ProfilingTracesInterval - no longer available.ProfilingEnabled - use ProfilesSampleRate instead.Obsolete SystemClock constructor removed, use SystemClock.Clock instead. (#2856)
Obsolete Runtime.Clone() removed, this shouldn't have been public in the past and has no replacement. (#2856)
Obsolete SentryException.Data removed, use SentryException.Mechanism.Data instead. (#2856)
Obsolete AssemblyExtensions removed, this shouldn't have been public in the past and has no replacement. (#2856)
Obsolete SentryDatabaseLogging.UseBreadcrumbs() removed, it is called automatically and has no replacement. (#2856)
Obsolete Scope.GetSpan() removed, use Span property instead. (#2856)
Obsolete IUserFactory removed, use ISentryUserFactory instead. (#2856, #2840)
IHasMeasurements has been removed, use ISpanData instead. (#2659)
IHasBreadcrumbs has been removed, use IEventLike instead. (#2670)
ISpanContext has been removed, use ITraceContext instead. (#2668)
IHasTransactionNameSource has been removed, use ITransactionContext instead. (#2654)
(#2694)
The unused StackFrame.InstructionOffset has been removed. (#2691)
The unused Scope.Platform property has been removed. (#2695)
The obsolete setter Sentry.PlatformAbstractions.Runtime.Identifier has been removed (2764)
Sentry.Values<T> is now internal as it is never exposed in the public API (#2771)
The TracePropagationTarget class has been removed, use the SubstringOrRegexPattern class instead. (#2763)
The WithScope and WithScopeAsync methods have been removed. We have discovered that these methods didn't work correctly in certain desktop contexts, especially when using a global scope. (#2717)
Replace your usage of WithScope with overloads of Capture* methods:
SentrySdk.CaptureEvent(SentryEvent @event, Action<Scope> scopeCallback)SentrySdk.CaptureMessage(string message, Action<Scope> scopeCallback)SentrySdk.CaptureException(Exception exception, Action<Scope> scopeCallback)// Before
SentrySdk.WithScope(scope =>
{
scope.SetTag("key", "value");
SentrySdk.CaptureEvent(new SentryEvent());
});
// After
SentrySdk.CaptureEvent(new SentryEvent(), scope =>
{
// Configure your scope here
scope.SetTag("key", "value");
});
Sentry.Profiling is now available as a package on nuget. Be aware that profiling is in alpha and on servers the overhead could be high. Improving the experience for ASP.NET Core is tracked on this issue (#2800)
EnableSpotlightSpotlightUrl. Defaults to http://localhost:8969/stream.SentryMauiOptions.AttachScreenshots (#2965)
in_foreground, indicating whether the app was in the foreground or the background. (#2983)LogCat to the event. You can opt-in via SentryOptions.Android.LogCatIntegration and configure SentryOptions.Android.LogCatMaxLines. (#2926)
net7.0-android or later, on API level 23 or later.Native AOT publishing support for .NET 8 has been added to Sentry for the following platforms:
There are some functional differences when publishing Native AOT:
StackTraceMode.Enhanced is ignored because it's not available when publishing Native AOT. The mechanism to generate these enhanced stack traces relies heavily on reflection which isn't compatible with trimming.SentryOptions.AddJsonSerializerContext to supply a serialization context for types that you'd like to send to Sentry (e.g. in the Span.Context). (#2732, #2793)Ben.Demystifier is not available as it only runs in JIT mode./api/<FUNCTION_NAME> (#2920)WillFinishLaunching to FinishedLaunching. This delays the initial instantiation of app. (#3057)WinUIUnhandledExceptionIntegration on non-Windows platforms (#3055)default.profraw in the app bundle using xcodebuild archive to build sentry-cocoa (#2960)CreateElementEventsBreadcrumbs to the SentryMauiOptions to allow users to opt-in automatic breadcrumb creation for BindingContextChanged, ChildAdded, ChildRemoved, and ParentChanged on Element.VisualElement, Window, Shell, Page, and Button.Sentry.Serilog no longer throws if a disabled DSN is provided when initializing Sentry via the Serilog integration (#2883)Transactions are now getting enriched by the client instead of the hub (#2838)1.5.0 and newer where the SDK would create transactions for itself. The fix is backward compatible. (#3001)Upgraded to NLog version 5. (#2697)
Integrate sentry-native as a static library in Native AOT builds to enable symbolication. (#2704)
Bump Cocoa SDK from v8.16.1 to v8.19.0 (#2910, #2936, #2972, #3005, #3084)
Bump Java SDK from v6.34.0 to v7.3.0 (#2932, #2979, #3049, (https://github.com/getsentry/sentry-dotnet/pull/3098))
Bump CLI from v2.21.5 to v2.27.0 (#2901, #2915, #2956, #2985, #2999, #3012, #3030, #3059, #3062, #3073, #3099)
startCrashHandlerWithError crash handlers will not be installed.This should be safe to upgrade from 3.x.x, there are no code changes what so ever. If you are using CocoaPods or Carthage an update should take care of everything, if you were using the source code directly, make sure to remove KSCrash if you were using it.
We recommend updating if you experience any KSCrash related crashes since we fixed bunch of stuff directly in our codebase now.
Fixed an issue when using the SDK together with Open Telemetry 1.5.0 and newer where the SDK would create transactions for itself. The fix is backward
1.5.0 and newer where the SDK would create transactions for itself. The fix is backward compatible. (#3001)Fixed Sentry SDK has not been initialised when using ASP.NET Core, Serilog, and OpenTelemetry
The SDK no longer fails to finish sessions while capturing an event. This fixes broken crash-free rates
CaptureFailedRequests and FailedRequestStatusCodes are now getting respected by the Cocoa SDK. This is relevant for MAUI apps where requests are getti
CaptureFailedRequests and FailedRequestStatusCodes are now getting respected by the Cocoa SDK. This is relevant for MAUI apps where requests are getting handled natively. (#2826)SentryOptions.AutoRegisterTracing for users who need to control registration of Sentry's tracing middleware (#2871)Fixed chaining on the IApplicationBuilder for methods like UseRouting and UseEndpoints
ISentryUserFactory is now public so users can register their own implementations via DI
…contexts when using a global scope. They are now deprecated in favor of the overloads of CaptureEvent, CaptureMessage, and CaptureException. Those met…
WithScope and WithScopeAsync have been proven to not work correctly in desktop contexts when using a global scope. They are now deprecated in favor of the overloads of CaptureEvent, CaptureMessage, and CaptureException. Those methods provide a callback to a configurable scope. (#2677)StackFrame.InstructionOffset has not been used in the SDK and has been ignored on the server for years. (#2689)Added Sentry.AspNet.csproj back to Sentry-CI-Build-macOS.slnf
Added additional DB attributes to automatically generated spans like name and provider
DB attributes to automatically generated spans like name and provider (#2583)Hints now accept attachments provided as a file path via AddAttachment method (#2585)Nothing published for this version
Nothing published for this version
Android: Fix proguard/r8 mapping file upload
The SDK no longer creates transactions with their start date set to Jan 01, 001
Introduced HttpMessageHandler in favor of the now deprecated HttpClientHandler on the options. This allows the SDK to support NSUrlSessionHandler on i…
PlatformNotSupportedException (#2506)HttpMessageHandler in favor of the now deprecated HttpClientHandler on the options. This allows the SDK to support NSUrlSessionHandler on iOS (#2503)Activity.RecordException now correctly updates the error status of OpenTelemetry Spans (#2515)Added a MSBuild property SentryUploadAndroidProguardMapping to automatically upload the Proguard mapping file when targeting Android
SentryUploadAndroidProguardMapping to automatically upload the Proguard mapping file when targeting Android (#2455)SwiftAsyncStacktraces on iOS (#2436)r8 enabled no longer crash during SDK init. The package now contains the required proguard rules (#2450)SentryHttpMessageHandler added when AddHttpClient is before UseSentry
UIKit, ABI.Microsoft and WinRT frames are now marked "system" instead of "in app"..NET SDK changes for exception groups
AggregateException is handled. Instead of filtering them out client-side, the SDK marks them as an "exception group",
and adds includes data that represents the hierarchical structure of inner exceptions. Sentry now recognizes this server-side,
improving the accuracy of the issue detail page.KeepAggregateException option is now obsolete and does nothing. Please remove any usages of KeepAggregateException.KeepAggregateException = true was set. That will not break anything, but may affect issue grouping and alerts.NOTE: This is a potentially breaking change, as the TracesSampleRate property has been made nullable. Though extremely uncommon, if you are _retrievin…
Azure Functions (Isolated Worker/Out-of-Process) support (#2346)
beta.1 release. Please give it a try and let us know how it goes!/samples/Sentry.Samples.Azure.Functions.Worker.Add Hint support (#2351)
ISentryEventProcessorWithHint or ISentryTransactionProcessorWithHint, instead of ISentryEventProcessor or ISentryTransactionProcessor.BeforeSend, BeforeSendTransaction, and BeforeBreadcrumb properties on the SentryOptions class. They have been replaced with SetBeforeSend, SetBeforeSendTransaction, and SetBeforeBreadcrumb respectively. Each one provides overloads both with and without a Hint object.Allow setting the active span on the scope (#2364)
Scope.GetSpan method in favor of a Scope.Span property (which now has a setter as well).Remove authority from URLs sent to Sentry (#2365)
Add tag filters to SentryOptions (#2367)
Fix EnableTracing option conflict with TracesSampleRate (#2368)
TracesSampleRate property has been made nullable.
Though extremely uncommon, if you are retrieving the TracesSampleRate property for some reason, you will need to account for nulls.
However, there is no change to the behavior or typical usage of either of these properties.CachedTransport gracefully handles malformed envelopes during processing (#2371)
Remove extraneous iOS simulator resources when building MAUI apps using Visual Studio "Hot Restart" mode, to avoid hitting Windows max path (#2384)
Initial work to support profiling in a future release.
WithScope and add WithScopeAsync (#2303) (#2309)RemoveExceptionFilter, RemoveEventProcessor and RemoveTransactionProcessor extension methods on SentryOptions (#2331)System.Reflection.Metadata dependency for .NET Core 3 (#2302)HttpClient.Send in SentryHttpMessageHandler (#2336)Add FileDiagnosticLogger to assist with debugging the SDK
FileDiagnosticLogger to assist with debugging the SDK (#2242)Scope.Clear and Scope.ClearBreadcrumbs methods (#2284)AddAspNet more than once should not block all errors from being sent (#2253)Notice: The MSBuild property previously defaulted to true for projects compiled in Release configuration. It is now false by default. To continue uplo
Notice: The <SentryUploadSymbols> MSBuild property previously defaulted to true for projects compiled in Release configuration.
It is now false by default. To continue uploading symbols, you must opt-in by setting it to true.
See the MSBuild Setup docs for further details.
View Hierarchy (#2163)SentryUploadSources to work even when not uploading symbols (#2197)BeforeSendTransaction (#2188)EnableTracing option to simplify enabling tracing (#2201)SentryUploadSymbols strictly opt-in (#2216)Fix MAUI missing breadcrumbs for lifecycle and UI events
Added instruction_addr_adjustment attribute to SentryStackTrace
instruction_addr_adjustment attribute to SentryStackTrace (#2151)nuget.org as snupkg packages (#2166)Fix Sentry CLI MSBuild for Xamarin and NetFX
Publish Sentry.Android.AssemblyReader as a separate nuget package (for reuse by Sentry.Xamarin)
Fix Sentry CLI integration on Windows
Fix issue with Sentry CLI msbuild properties
Use Sentry CLI after build to upload symbols
Add support for Portable PDB format
Fix missing stack trace on UnobservedTaskException
Simplify API for flushing events
CacheDirectoryPath option on MAUI (#2055)Fix concurrency bug in caching transport
Update bundled Android SDK to version 6.5.0
Sentry.Maui (#2005)ISpan.GetTransaction convenience method (#2014)Sentry now depends on Sentry.Bindings.Android for net6.0-android targets.Sentry now depends on Sentry.Bindings.Cocoa for net6.0-ios and net6.0-maccatalyst targets.Sentry.Extensions.Logging (#1992)SentryEvent.Exception (#2011)Google.Cloud.Functions.Hosting to version 1.1.0 (#2015)SentryOptions.AttachStackTrace is now enabled by default.
SentryOptions.AttachStackTrace is now enabled by default. (#1907)TransactionNameSource annotation (#1910)User.Segment property (#1920)JsonConverters (#1934)AggregateException (#1924)ok instead of unknown_error (#1970)Add ISentryTransactionProcessor
Includes Sentry.Maui Preview 3
Distribution properties (#1851)Release and Distribution for iOS and Android (#1856)server-os and server-runtime (#1893)URGENT: Fix events rejected due to duplicate sent_at header when offline caching is enabled through CacheDirectoryPath
Use sent_at instead of sentry_timestamp to reduce clock skew
sent_at instead of sentry_timestamp to reduce clock skew (#1690)ConcurrentHashMap on Android <= 9 (#1761)BackgroundWorker (#1773)InitCacheFlushTimeout (#1784)Expose EnumerateChainedExceptions
Includes Sentry.Maui Preview 2
EnumerateChainedExceptions (#1733)IntPtr and UIntPtr serialization (#1746)Move tunnel functionality into Sentry.AspNetCore
Includes Sentry.Maui Preview 1
HttpContext available for sampling decisions (#1682)net6.0-android target for the Sentry core library, which bundles the Sentry Android SDK:
Sentry.Maui integration library for the .NET MAUI platform:
KeepAggregateException to true.SentryEvent (#1693)Platform name (#1702)Rework how the InitCacheFlushTimeout option is implemented.
Notice: If you are using self-hosted Sentry, this version and forward requires either Sentry version >= 21.9.0, or you must manually disable sending c
Notice: If you are using self-hosted Sentry, this version and forward requires either Sentry version >= 21.9.0, or you must manually disable sending client reports via the SendClientReports option.
ITransport and SentryOptions.Transport public, to support using custom transports (#1602)System.Text.Json issue with Unity IL2CPP. (#1583)BeforeSend callback. (#1587)Platform and always write csharp (#1610)Use a default value of 60 seconds if a Retry-After header is not present.
Retry-After header is not present. (#1537)HttpTransport extensibility and synchronous serialization support (#1560)UseAsyncFileIO to Sentry options (enabled by default) (#1564)Contexts properties more thread-safe (#1571)PlatformNotSupportedException exception on net6.0-maccatalyst targets (#1567)SentrySdk.LastEventId is accessible from exception handler pages (#1573)Expose ConfigureAppFrame as a public static function.
Fix caching transport with attachments
Add the delegate TransactionNameProvider to allow the name definition from Unknown transactions on ASP.NET Core
<ImplicitUsings>true</ImplicitUsings>) (#1398)Add CaptureLastError as an extension method to the Server class on ASP.NET
Your coding agent can read these notes before it upgrades. Set up the MCP server →