Skip to content

MAUI + .Net for Android/iOS - Crashes Duplicated #4142

@justinwojo

Description

@justinwojo

Package

Sentry

.NET Flavor

.NET

.NET Version

9.0.203

OS

Other

OS Version

No response

Development Environment

Rider 2024 (MacOS)

SDK Version

5.4.0

Self-Hosted Sentry Version

No response

Workload Versions

android 35.0.61/9.0.100 SDK 9.0.200
ios 18.4.9288/9.0.100 SDK 9.0.200
maui 9.0.14/9.0.100 SDK 9.0.200
maui-android 9.0.14/9.0.100 SDK 9.0.200
maui-ios 9.0.14/9.0.100 SDK 9.0.200

UseSentry or SentrySdk.Init call

`

SentrySdk.Init(options =>
    {
        options.Dsn = "removed";
        options.SampleRate = 1.0F;
        options.TracesSampleRate = 1.0;
        options.ProfilesSampleRate = 1.0;

        options.Native.EnableAppHangTracking = true;
        options.Native.EnableTracing = true;

        options.Environment = AppConfig.Environment;

        options.CacheDirectoryPath = Path.GetTempPath();
    });

`

Steps to Reproduce

Image

Have a crash in a MAUI, .Net for iOS, or .Net for Android app caused by a .Net unhandled exception. You'll see the crash listed as 2 separate unhandled exceptions in the issue screen when filtering by unhandled true.

When using the Dashboard widget for crash counts, you'll see this crash listed as 2 crashes and 2 users, instead of just 1. We have both MAUI and .Net for Android/iOS apps that all exhibit the same behavior, and at larger scale than this example.

Given the example above affecting 2 users, 3 total crashes, the dashboard shows this as 4 affected users, 6 crashes, and a much higher percentage of sessions/users with crashes than what is true.

Image

Expected Result

The .Net unhandled exception and the native crash should not be counted as 2 different crashes in Sentry, especially when wanting to use the Dashboard widgets to properly determine crash counts and rates.

Also, since there's no way to change the releases crash rate widget by only fatal level, we cannot find a way to display a widget showing percentage of sessions that crashed with fatal unhandled errors, since sessions cannot be used as a metric within the error widget in a formula. So, we're unable to actually properly reflect the true percentage of users with crashes in the dashboard without manually calculating it.

Actual Result

Listed in Steps to Reproduce. Every crash regardless of iOS or Android results in 2 different issue reports, and 2 crashes added to the total crash count instead of just 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels
    No fields configured for issues without a type.

    Projects

    Status

    Done

    Status

    Waiting for: Product Owner

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions