diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ef14d6c76..e52220cf69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +- Fix mismapped breadcrumb levels coming in from native to dotnet SDK ([#3993](https://github.com/getsentry/sentry-dotnet/pull/3993)) + ### Features - Serilog scope properties are now sent with Sentry events ([#3976](https://github.com/getsentry/sentry-dotnet/pull/3976)) diff --git a/src/Sentry/Breadcrumb.cs b/src/Sentry/Breadcrumb.cs index e7d447edf6..b3b58606b0 100644 --- a/src/Sentry/Breadcrumb.cs +++ b/src/Sentry/Breadcrumb.cs @@ -157,8 +157,18 @@ public static Breadcrumb FromJson(JsonElement json) var type = json.GetPropertyOrNull("type")?.GetString(); var data = json.GetPropertyOrNull("data")?.GetStringDictionaryOrNull(); var category = json.GetPropertyOrNull("category")?.GetString(); - var level = json.GetPropertyOrNull("level")?.GetString()?.ParseEnum() ?? default; + var levelString = json.GetPropertyOrNull("level")?.GetString(); + var level = levelString?.ToUpper() switch + { + "DEBUG" => BreadcrumbLevel.Debug, + "INFO" => BreadcrumbLevel.Info, + "WARNING" => BreadcrumbLevel.Warning, + "ERROR" => BreadcrumbLevel.Error, + "CRITICAL" => BreadcrumbLevel.Critical, + "FATAL" => BreadcrumbLevel.Critical, + _ => default + }; return new Breadcrumb(timestamp, message, type, data!, category, level); } }