Skip to content

Releases: getsentry/sentry-unity

4.0.0

16 Dec 10:45

Choose a tag to compare

Breaking Changes

  • Removed Unity 2020 support, which reached End of Life in 2023. Minimum supported version now is 2021. (#2313)
  • sentry-native is now built on Ubuntu 22.04 instead of Ubuntu 20.04, which reached EOL in May 2025. If you are running you game on a server on Ubuntu 20.04, you should update the OS before upgrading to this SDK version. (#2355)
  • The Unity SDK's static API has been moved from Sentry.Unity.SentryUnity and Sentry.SentrySdk to Sentry.Unity.SentrySdk. This change enables manual/programatic SDK initialization with full functionality, previously only available through auto-initialization. The underlying .NET SDK's SentrySdk class is now internal, and several previously public classes like SentryInitialization and SentryIntegrations are now internal. Migration: Update your using directives from using Sentry; to using Sentry.Unity;. IDEs like Rider can automatically import the missing references. In some cases, you may need both using Sentry.Unity; (for the static API) and using Sentry; (for types like SentryId). No changes are required to your actual SDK method calls (e.g., SentrySdk.CaptureException() remains the same). (#2227, #2239)
  • The deprecated Runtime- and BuildTime-Configuration have been removed in favor of the single OptionsConfiguration script. When migrating you can make use of preprocessor directives to set specific options for specific platforms. Check out the Migration Guide. (#2337)
  • Renamed the option AttachBreadcrumbsToEvents to AddBreadcrumbsWithStructuredLogs to better reflect its purpose. The option controls if the SDK does BOTH: attach logs as breadcrumbs to events and send them as structured logs (#2455)
  • SetBeforeCaptureScreenshot signature changed from Func<bool> to Func<SentryEvent, bool>, now receiving the event that triggered the screenshot capture. This allows context-aware decisions before capture begins. (#2428)
  • SetBeforeCaptureViewHierarchy signature changed from Func<bool> to Func<SentryEvent, bool>, now receiving the event that triggered the view hierarchy capture. This allows context-aware decisions before capture begins. (#2429)
  • BreadcrumbLevel.Critical has been renamed to BreadcrumbLevel.Fatal for consistency with the other Sentry SDKs (#4605)
  • Removed SentrySdk.CaptureUserFeedback and all associated members. Use the newer SentrySdk.CaptureFeedback instead. (#4619)
  • ScopeExtensions.Populate is now internal (#4611)
  • Backpressure handling is now enabled by default, meaning that the SDK will monitor system health and reduce the sampling rate of events and transactions when the system is under load. When the system is determined to be healthy again, the sampling rates are returned to their original levels. (#4615)
  • Spans and Transactions now implement IDisposable so that they can be used with using statements/declarations that will automatically finish the span with a status of OK when it passes out of scope, if it has not already been finished, to be consistent with Activity classes when using OpenTelemetry (#4627)
  • SpanTracer and TransactionTracer are still public but these are now sealed (#4627)
  • CaptureFeedback now returns a SentryId and a CaptureFeedbackResult out parameter that indicate whether feedback was captured successfully and what the reason for failure was otherwise (#4613)
  • The SDK will now always add a breadcrumb when capturing an exception. The option to opt-out of this has been removed. (#2335)

Behavioural Changes

  • The SDK no longer refreshes the trace ID when the game loses and regains focus. This means that the trace ID persists from game start to game end. The SDK now also automatically adds breadcrumbs on those lifecycle events. (#2374)
  • The SDK no longer sets tags automatically. The promotion of contexts to tags now happens exclusively in Sentry. The Unity context got extended by IsMainThread for this. The tags unity.device.unique_identifier and unity.gpu.supports_instancing no longer exist and have no replacement. (#2459)

Fixes

  • When targeting Windows or Linux with Mono as the scripting backend, to prevent crashes, the native SDK's debug logger integration is disabled. (#2445)
  • Fixed race conditions that could cause crashes when targeting Android, especially in concurrent scenarios. The ThreadPool used to sync scope to the native layer could prematurely detach threads from the JVM. This is solved by using a dedicated background worker thread that properly manages JNI lifecycle. (#2426)
  • Fixed memory leak when finishing an unsampled Transaction that has started unsampled Spans (#4717)
  • The SDK now avoids redundant scope sync after transaction finish (#4623)
  • Fixed the extension methods on the options to disable unhandled exception capture and the logging integration (#2413)
  • Fixed the breadcrumb format for lifecycle events (#2407)
  • When targeting iOS, the WatchdogTerminationIntegration now defaults to false as to not report false positives. Users can control this through the option IosWatchdogTerminationIntegrationEnabled (#2403)
  • The SDK now correctly sets the currently active scene's name on the event (#2400)
  • Fixed an issue where screenshot capture triggered on a burst job would crash the game. The SDK can now also capture screenshots on events that occur outside of the main thread (#2392)
  • Structured logs now have the origin and sdk attributes correctly set (#2390)
  • Resolved possible startup crashes on Android VR platforms like the Oculus Quest. The SDK no longer natively subscribes to interaction hooks for automatic tracing and breadcrumb creation. (#2393)
  • When configured, the SDK now no longer treats Debug.LogError events as exceptions but resports them as message events instead (#2377)
  • When targeting Xbox, the SDK now correctly picks up the debug symbols for sentry-native from the Assets/Plugins/Sentry directory (#2363)
  • Fixed crashes when adding breadcrumbs on iOS/macOS. This was caused by invalid date parsing and corrupted string data in the native bridge responsible for scope sync (#2327, #2338)
  • Fixed input handling in samples to work with old and new input system (#2319)
  • The SDK now captures exceptions on WebGL through the logging integration instead of the incompatible log handler, providing better stack trace support. (#2322)
  • The SDK no longer accesses AnalyticsSessionInfo.userId when targeting console platforms. This was leading to crashes during launch. (#2309)
  • The SDK now deduplicates trace generation during startup and scene loading (#2301)
  • The SDK no longer appends multiple upload tasks when building for Android (#2300)
  • Fixed false positive ANR events on WebGL, i.e. when switching tabs, or unfocusing the player (#2306)
  • The SDK now automatically picks up previously missing debug symbols - i.e. BurstDebugInformation, by passing the target directory path to Sentry CLI. Sentry CLI then automatically and recursively picks up any not yet uploaded symbols. (#2298)
  • The check used to verify whether the current thread is the main-thread now includes JobsUtility.IsExecutingJob to support running in Burst. (#2226)
  • For targeting iOS, the Unity SDK now brings an iOS-only .xcframework, reducing package size. (#2264)
  • The SDK now waits for 'End of Frame' before capturing a screenshot. This should address any blank or malformed screenshots previously attached to events. The SDK now also only captu...
Read more

4.0.0-beta.7

09 Dec 21:14

Choose a tag to compare

4.0.0-beta.7 Pre-release
Pre-release

Breaking Changes

  • SetBeforeCaptureScreenshot signature changed from Func<bool> to Func<SentryEvent, bool>, now receiving the event that
    triggered the screenshot capture. This allows context-aware decisions before capture begins. (#2428)
  • SetBeforeCaptureViewHierarchy signature changed from Func<bool> to Func<SentryEvent, bool>, now receiving the event that
    triggered the view hierarchy capture. This allows context-aware decisions before capture begins. (#2429)

Fixes

  • When targeting Windows or Linux with Mono as the scripting backend, to prevent crashes, the native SDK's debug logger integration is disabled. (#2445)

Features

  • Added PlayStation Native Support. The SDK now automatically syncs the scope - tags, breadcrumbs, context - to the native layer, so native crashes have the same rich context as managed events. (#2433)
  • On Windows, and with screenshot capture enabled, the SDK will now also capture and attach a screenshot to native crashes (#2434)
  • Added SetBeforeSendScreenshot(Func<Texture2D, SentryEvent, Texture2D?>) callback that provides the captured screenshot as a
    Texture2D before JPEG compression. (#2428)
    This enables:
    • Modifying the screenshot in-place (e.g., blurring sensitive UI areas, redacting PII)
    • Replacing the screenshot with a different Texture2D
    • Discarding the screenshot by returning null
    • Access to the event context for conditional processing
  • Added SetBeforeSendViewHierarchy(Func<ViewHierarchy, SentryEvent, ViewHierarchy?>) callback that provides the captured
    ViewHierarchy to be modified before compression. (#2429)

Dependencies

4.0.0-beta.6

19 Nov 19:06

Choose a tag to compare

4.0.0-beta.6 Pre-release
Pre-release

Various fixes & improvements

  • chore: update modules/sentry-java to 8.26.0 (#2419) by @github-actions
  • chore: update modules/sentry-cli.properties to 2.58.2 (#2418) by @github-actions

4.0.0-beta.5

13 Nov 00:42

Choose a tag to compare

4.0.0-beta.5 Pre-release
Pre-release

Features

  • The SDK automatically subscribes to and leaves breadcrumbs for Application.lowMemory events (#2406)
  • The SDK now also reports the currently allocated memory when reporting an event or transaction. (#2398)
  • The SDK defaults EnvironmentUser to sensible values based on the current platform. This is still guarded by the SendDefaultPII flag. (#2402)

Fixes

  • Fixed the extension methods on the options to disable unhandled exception capture and the logging integration (#2413)
  • Fixed the breadcrumb format for lifecycle events (#2407)
  • When targeting iOS, the WatchdogTerminationIntegration now defaults to false as to not report false positives. Users can control this through the option IosWatchdogTerminationIntegrationEnabled (#2403)
  • The SDK now correctly sets the currently active scene's name on the event (#2400)
  • Fixed an issue where screenshot capture triggered on a burst job would crash the game. The SDK can now also capture screenshots on events that occur outside of the main thread (#2392)
  • Structured logs now have the origin and sdk attributes correctly set (#2390)
  • Resolved possible startup crashes on Android VR platforms like the Oculus Quest. The SDK no longer natively subscribes to interaction hooks for automatic tracing and breadcrumb creation. (#2393)

Features

  • Strucutured Logs are not longer experimental (#2401)

Dependencies

4.0.0-beta.4

03 Nov 20:06

Choose a tag to compare

4.0.0-beta.4 Pre-release
Pre-release

Breaking Changes

  • sentry-native is now built on Ubuntu 22.04 instead of Ubuntu 20.04, which reached EOL in May 2025. If you are running you game on a server on Ubuntu 20.04, you should update the OS before upgrading to this SDK version. (#2355)

Bump to Sentry SDK for .NET v6.0.0-preview introduces the following changes

  • BreadcrumbLevel.Critical has been renamed to BreadcrumbLevel.Fatal for consistency with the other Sentry SDKs (#4605)
  • Removed SentrySdk.CaptureUserFeedback and all associated members. Use the newer SentrySdk.CaptureFeedback instead. (#4619)
  • ScopeExtensions.Populate is now internal (#4611)
  • Backpressure handling is now enabled by default, meaning that the SDK will monitor system health and reduce the sampling rate of events and transactions when the system is under load. When the system is determined to be healthy again, the sampling rates are returned to their original levels. (#4615)
  • Spans and Transactions now implement IDisposable so that they can be used with using statements/declarations that will automatically finish the span with a status of OK when it passes out of scope, if it has not already been finished, to be consistent with Activity classes when using OpenTelemetry (#4627)
  • SpanTracer and TransactionTracer are still public but these are now sealed (see also #4627)
  • CaptureFeedback now returns a SentryId and a CaptureFeedbackResult out parameter that indicate whether feedback was captured successfully and what the reason for failure was otherwise (#4613)

Behavioural Changes

  • The SDK no longer refreshes the trace ID when the app loses and regains focus. This means that the trace ID persists from game start to game end. The SDK now also automatically adds breadcrumbs on those lifecycle events. (#2374)

Features

  • The SDK no longer ends sessions as crashed when capturing unhandled or logged exceptions. Instead, sessions get correctly marked as SessionEndStatus.Unhandled (#2376)
  • Added support for Structured Logging. The SentrySdk.Logger API is now exposed for Unity users, enabling structured log capture. The SDK can also automatically capture and send Debug logs based on the options configured. (#2368)

Fixes

  • When configured, the SDK now no longer treats Debug.LogError events as exceptions but resports them as message events instead (#2377)

Fixes

  • When targeting Xbox, the SDK now correctly picks up the debug symbols for sentry-native from the Assets/Plugins/Sentry directory (#2363)

Dependencies

3.2.4

24 Oct 10:04

Choose a tag to compare

Fixes

This release contains the bump of the Cocoa SDK with the following note and resolves Invalid architecture errors when submitting to the app store.

Important

Xcode 26 no longer allows individual frameworks to contain arm64e slices anymore if the main binary doesn't contain them.
We have decided to split the Dynamic variant and Sentry-WithoutUIKitOrAppKit of Sentry into two variants:

  • Sentry-Dynamic: Without ARM64e
  • Sentry-Dynamic-WithARM64e: With ARM64e slice
  • Sentry-WithoutUIKitOrAppKit: Without ARM64e
  • Sentry-WithoutUIKitOrAppKit-WithARM64e: With ARM64e slice

If your app does not need arm64e, you don't need to make any changes.
But if your app needs arm64e please use Sentry-Dynamic-WithARM64e or Sentry-WithoutUIKitOrAppKit-WithARM64e from 8.55.0 so you don't have issues uploading to the App Store.

Dependencies

4.0.0-beta.3

09 Oct 17:48

Choose a tag to compare

4.0.0-beta.3 Pre-release
Pre-release

Breaking Changes

  • The SDK will now always add a breadcrumb when capturing an exception. The option to opt-out of this has been removed. (#2335)
  • The deprecated Runtime- and BuildTime-Configuration have been removed in favor of the single OptionsConfiguration script. When migrating you can make use of preprocessor directives to set specific options for specific platforms. Check out the (Migration Guide). (#2337)

Features

Fixes

  • Fixed crashes when adding breadcrumbs on iOS/macOS. This was caused by invalid date parsing and corrupted string data in the native bridge responsible for scope sync (#2327, #2338)
  • Fixed input handling in samples to work with old and new input system (#2319)
  • The SDK now captures exceptions on WebGL through the logging integration instead of the incompatible log handler, providing better stack trace support . (#2322)
  • Fixed input handling in samples to work with old and new input system. (#2319)

Dependencies

4.0.0-beta.2

16 Sep 13:29

Choose a tag to compare

4.0.0-beta.2 Pre-release
Pre-release

Breaking Changes

  • Removed Unity 2020 support, which reached End of Life in 2023. Minimum supported version now is 2021. (#2313)

Features

  • The SDK now has a dedicated sample scene for third party plugins like Cysharp, or DOTween. (#2289)
  • The SDK now automatically marks stack frames from Cysharp and DG.Tweening as non in-app. This highly improves the resulting stack trace quality in the issues details. (#2285)

Fixes

  • The SDK no longer accesses AnalyticsSessionInfo.userId when targeting console platforms. This was leading to crashes during launch. (#2309)
  • The SDK now deduplicates trace generation during startup and scene loading (#2301)
  • The SDK no longer appends multiple upload tasks when building for Android (#2300)
  • Fixed false positive ANR events on WebGL, i.e. when switching tabs, or unfocusing the player (#2306)
  • The SDK now automatically picks up previously missing debug symbols - i.e. BurstDebugInformation, by passing the
    target directory path to Sentry CLI. Sentry CLI then automatically and recursively picks up any not yet uploaded symbols. (#2298)
  • The check used to verify whether the current thread is the main-thread now includes JobsUtility.IsExecutingJob to support running in Burst. (#2226)
  • For targeting iOS, the Unity SDK now brings an iOS-only .xcframework, reducing package size. (#2264)

Dependencies

4.0.0-beta.1

28 Jul 21:29

Choose a tag to compare

4.0.0-beta.1 Pre-release
Pre-release

Fixes

  • The SDK now waits for 'End of Frame' before capturing a screenshot. This should address any blank or malformed screenshots previously attached to events. The SDK now also only captures one screenshot for the first error event in each individual frame. (#2240)

Dependencies

4.0.0-beta.0

16 Jul 20:34

Choose a tag to compare

4.0.0-beta.0 Pre-release
Pre-release

Breaking Changes

  • Removed Unity 2019 support, which reached End of Life in 2022. Minimum supported version now is 2020. (#2231)

  • Breaking Change: The Unity SDK's static API has been moved from Sentry.Unity.SentryUnity and Sentry.SentrySdk to Sentry.Unity.SentrySdk. This change enables manual/programatic SDK initialization with full functionality, previously only available through auto-initialization. The underlying .NET SDK's SentrySdk class is now internal, and several previously public classes like SentryInitialization and SentryIntegrations are now internal.

    Migration: Update your using directives from using Sentry; to using Sentry.Unity;. IDEs like Rider can automatically import the missing references. In some cases, you may need both using Sentry.Unity; (for the static API) and using Sentry; (for types like SentryId). No changes are required to your actual SDK method calls (e.g., SentrySdk.CaptureException() remains the same). (#2227, #2239)

Features

  • The SDK now comes with a SentryUserFeedback prefab ready to be used. You can drag and drop it into your scene or
    customize it by creating your own variant. The user feedback feature allows your users to provide feedback in form
    of a written message that can optionally have a screenshot attached. Read more about it (here). (#2220)

Dependencies