From b5f8b3667d7dd30f4c7a364301eb0c1d81fc41cc Mon Sep 17 00:00:00 2001 From: Kalle <38327916+Sendouc@users.noreply.github.com> Date: Sun, 3 May 2026 14:47:20 +0300 Subject: [PATCH] Fix /suspended 500 when banned user row was deleted via migrate --- app/features/admin/actions/admin.server.ts | 2 ++ app/features/ban/loaders/suspended.server.ts | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/features/admin/actions/admin.server.ts b/app/features/admin/actions/admin.server.ts index 4f63512f4..32c9ca08c 100644 --- a/app/features/admin/actions/admin.server.ts +++ b/app/features/admin/actions/admin.server.ts @@ -39,6 +39,8 @@ export const action = async ({ request }: ActionFunctionArgs) => { errorToast(`Migration failed. Reason: ${errorMessage}`); } + await refreshBannedCache(); + message = "Account migrated"; break; } catch (err) { diff --git a/app/features/ban/loaders/suspended.server.ts b/app/features/ban/loaders/suspended.server.ts index 2dbed9b32..c8a878cbb 100644 --- a/app/features/ban/loaders/suspended.server.ts +++ b/app/features/ban/loaders/suspended.server.ts @@ -6,14 +6,19 @@ import { } from "~/features/auth/core/authenticator.server"; import { authSessionStorage } from "~/features/auth/core/session.server"; import type { Nullish } from "~/utils/types"; -import { userIsBanned } from "../core/banned.server"; +import { refreshBannedCache, userIsBanned } from "../core/banned.server"; export const loader = async ({ request }: LoaderFunctionArgs) => { const userId = await getUserIdEvenIfBanned(request); if (!userId || !userIsBanned(userId)) return redirect("/"); - const bannedStatus = (await AdminRepository.allBannedUsers()).get(userId)!; + const bannedStatus = (await AdminRepository.allBannedUsers()).get(userId); + + if (!bannedStatus) { + await refreshBannedCache(); + return redirect("/"); + } return { banned: bannedStatus.banned,