diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props
index ca1fe96a2..ef0f4cbf9 100644
--- a/src/Directory.Packages.props
+++ b/src/Directory.Packages.props
@@ -41,7 +41,7 @@
-
+
diff --git a/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs b/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs
index 62bff132b..a56e57376 100644
--- a/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs
+++ b/src/NzbDrone.Common/Instrumentation/Sentry/SentryCleanser.cs
@@ -11,26 +11,41 @@ namespace NzbDrone.Common.Instrumentation.Sentry
{
try
{
- sentryEvent.Message.Message = CleanseLogMessage.Cleanse(sentryEvent.Message.Message);
+ if (sentryEvent.Message is not null)
+ {
+ sentryEvent.Message.Formatted = CleanseLogMessage.Cleanse(sentryEvent.Message.Formatted);
+ sentryEvent.Message.Message = CleanseLogMessage.Cleanse(sentryEvent.Message.Message);
+ sentryEvent.Message.Params = sentryEvent.Message.Params?.Select(x => CleanseLogMessage.Cleanse(x switch
+ {
+ string str => str,
+ _ => x.ToString()
+ })).ToList();
+ }
- if (sentryEvent.Fingerprint != null)
+ if (sentryEvent.Fingerprint.Any())
{
var fingerprint = sentryEvent.Fingerprint.Select(x => CleanseLogMessage.Cleanse(x)).ToList();
sentryEvent.SetFingerprint(fingerprint);
}
- if (sentryEvent.Extra != null)
+ if (sentryEvent.Extra.Any())
{
- var extras = sentryEvent.Extra.ToDictionary(x => x.Key, y => (object)CleanseLogMessage.Cleanse((string)y.Value));
+ var extras = sentryEvent.Extra.ToDictionary(x => x.Key, y => (object)CleanseLogMessage.Cleanse(y.Value as string));
sentryEvent.SetExtras(extras);
}
- foreach (var exception in sentryEvent.SentryExceptions)
+ if (sentryEvent.SentryExceptions is not null)
{
- exception.Value = CleanseLogMessage.Cleanse(exception.Value);
- foreach (var frame in exception.Stacktrace.Frames)
+ foreach (var exception in sentryEvent.SentryExceptions)
{
- frame.FileName = ShortenPath(frame.FileName);
+ exception.Value = CleanseLogMessage.Cleanse(exception.Value);
+ if (exception.Stacktrace is not null)
+ {
+ foreach (var frame in exception.Stacktrace.Frames)
+ {
+ frame.FileName = ShortenPath(frame.FileName);
+ }
+ }
}
}
}
diff --git a/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs b/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs
index f17eb467a..5a3bd9d55 100644
--- a/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs
+++ b/src/NzbDrone.Common/Instrumentation/Sentry/SentryTarget.cs
@@ -45,10 +45,7 @@ namespace NzbDrone.Common.Instrumentation.Sentry
"OutOfMemoryException",
// Filter out people stuck in boot loops
- "CorruptDatabaseException",
-
- // This also filters some people in boot loops
- "TinyIoCResolutionException"
+ "CorruptDatabaseException"
};
public static readonly List FilteredExceptionMessages = new List
@@ -105,9 +102,6 @@ namespace NzbDrone.Common.Instrumentation.Sentry
o.Dsn = dsn;
o.AttachStacktrace = true;
o.MaxBreadcrumbs = 200;
- o.SendDefaultPii = false;
- o.Debug = false;
- o.DiagnosticLevel = SentryLevel.Debug;
o.Release = BuildInfo.Release;
o.BeforeSend = x => SentryCleanser.CleanseEvent(x);
o.BeforeBreadcrumb = x => SentryCleanser.CleanseBreadcrumb(x);