From 2756e19399b76f96cb95a891e9d6bd81831cc438 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Wed, 14 Feb 2024 02:53:01 +0100 Subject: [PATCH] [backend/middleware] Improve error handling in AuthorizedFetchMiddlewre --- .../Core/Middleware/AuthorizedFetchMiddleware.cs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Iceshrimp.Backend/Core/Middleware/AuthorizedFetchMiddleware.cs b/Iceshrimp.Backend/Core/Middleware/AuthorizedFetchMiddleware.cs index 3f388dd1..69761ea7 100644 --- a/Iceshrimp.Backend/Core/Middleware/AuthorizedFetchMiddleware.cs +++ b/Iceshrimp.Backend/Core/Middleware/AuthorizedFetchMiddleware.cs @@ -41,12 +41,17 @@ public class AuthorizedFetchMiddleware( // If we don't, we need to try to fetch it if (key == null) { - var user = await userResolver.ResolveAsync(sig.KeyId); - key = await db.UserPublickeys.Include(p => p.User).FirstOrDefaultAsync(p => p.User == user); + try { + var user = await userResolver.ResolveAsync(sig.KeyId); + key = await db.UserPublickeys.Include(p => p.User).FirstOrDefaultAsync(p => p.User == user); + } + catch (Exception e) { + throw new GracefulException($"Failed to fetch key of signature user ({sig.KeyId}) - {e.Message}"); + } } // If we still don't have the key, something went wrong and we need to throw an exception - if (key == null) throw new GracefulException("Failed to fetch key of signature user"); + if (key == null) throw new GracefulException($"Failed to fetch key of signature user ({sig.KeyId})"); if (key.User.Host == null) throw new GracefulException("Remote user must have a host");