You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Unity SDK currently lacks proper trace ID propagation from the managed (C#) layer to the underlying native SDKs (Cocoa, Android, Native). This creates disconnected traces across different layers of the application, making it difficult to correlate events. There is no way to connect C# errors prior to a native event outside of breadcrumb messages.
Current Status by Platform
Native SDK
❌ No propagation context available on the scope
❌ Missing functionality to set trace context on the scope
❌ No continue trace API implementation
Impact: Events from native crashes cannot be correlated with their originating managed traces
Impact: Mixed trace propagation success; native crashes still disconnected
Cocoa SDK
❌ Missing continue trace API
❌ Trace propagation via bridge not functioning
Impact: Crash events generate new trace IDs instead of continuing existing traces
.NET SDK
❌ Missing functionality for the Unity SDK to set and control the trace ID's lifecycle
Proposal
What we're working here right now is
Typically, we disable the performance feature on the native layer, keeping it to the "head" SDK.
This makes these SDKs fall back on the TwP, using the PropagationContext on the scope
We could add some internal SetTrace method that allows an SDK to set the trace on the native SDK's propagation context. This can then be observed and in turn, be propagated further down the layers.
We'd also need a way to disable any auto-trace-generation on those native SDKs.
After implementation, all events (managed and native) should maintain consistent trace IDs throughout the entire crash reporting pipeline. This enables proper event correlation across all layers of Unity games.
The text was updated successfully, but these errors were encountered:
Problem Statement
The Unity SDK currently lacks proper trace ID propagation from the managed (C#) layer to the underlying native SDKs (Cocoa, Android, Native). This creates disconnected traces across different layers of the application, making it difficult to correlate events. There is no way to connect C# errors prior to a native event outside of breadcrumb messages.
Current Status by Platform
Native SDK
continue trace
API implementationAndroid SDK
Cocoa SDK
continue trace
API.NET SDK
Proposal
What we're working here right now is
PropagationContext
on the scopeWe could add some internal
SetTrace
method that allows an SDK to set the trace on the native SDK's propagation context. This can then be observed and in turn, be propagated further down the layers.We'd also need a way to disable any auto-trace-generation on those native SDKs.
Step by Step
Native SDK:
sentry_set_trace
sentry-native#1137(Optional) Addcontinue trace
API(Optional) Implement propagation context mechanismtraceId
on platforms supported bysentry-native
#2089Android SDK:
sentry_set_trace
sentry-native#1137enableTraceIdGeneration
to theAndroidOptions
feat: AddedenableTraceIdGeneration
option sentry-java#4188SetTrace
feat: Allow Hybrid SDK tosetTrace
sentry-java#4137setTrace
sentry-java#4137traceId
to the Android SDK #1997.NET SDK:
SetTrace
functionality so the Unity SDK can take control over the trace ID generation feat: AllowIScopeObserver
to observe trace sentry-dotnet#4026Cocoa SDK:
SetTrace
SetTrace
.React Native SDK:
PropagationContext
across layers sentry-react-native#3918Expected Outcome
After implementation, all events (managed and native) should maintain consistent trace IDs throughout the entire crash reporting pipeline. This enables proper event correlation across all layers of Unity games.
The text was updated successfully, but these errors were encountered: