From 2602763e251299daa742a7720321962c3c397e13 Mon Sep 17 00:00:00 2001 From: spiral Date: Sat, 3 Dec 2022 11:57:43 +0000 Subject: [PATCH] feat(bot): don't send internal error messages for some errors that should be on sentry --- PluralKit.Bot/Bot.cs | 2 ++ PluralKit.Bot/Utils/MiscUtils.cs | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/PluralKit.Bot/Bot.cs b/PluralKit.Bot/Bot.cs index 61769203..17e99571 100644 --- a/PluralKit.Bot/Bot.cs +++ b/PluralKit.Bot/Bot.cs @@ -231,6 +231,8 @@ public class Bot if (_config.DisableErrorReporting) return; + if (!exc.ShowToUser()) return; + // Once we've sent it to Sentry, report it to the user (if we have permission to) var reportChannel = handler.ErrorChannelFor(evt, _config.ClientId); if (reportChannel == null) diff --git a/PluralKit.Bot/Utils/MiscUtils.cs b/PluralKit.Bot/Utils/MiscUtils.cs index 83b29878..6845d858 100644 --- a/PluralKit.Bot/Utils/MiscUtils.cs +++ b/PluralKit.Bot/Utils/MiscUtils.cs @@ -57,6 +57,13 @@ public static class MiscUtils // HTTP/2 streams are complicated and break sometimes. if (e is HttpRequestException) return false; + // This may expanded at some point. + return true; + } + + public static bool ShowToUser(this Exception e) + { + // Ignore "Database is shutting down" error if (e is PostgresException pe && pe.SqlState == "57P03") return false; @@ -71,7 +78,10 @@ public static class MiscUtils if (e is NpgsqlException npe && npe.Message.Contains("The connection pool has been exhausted")) return false; - // This may expanded at some point. + // ignore "Exception while reading from stream" + if (e is NpgsqlException npe2 && npe2.Message.Contains("Exception while reading from stream")) + return false; + return true; } } \ No newline at end of file