From 19f4e0049536ba0eb8042509928bc4daf093ab15 Mon Sep 17 00:00:00 2001 From: Ronny Date: Tue, 8 Sep 2026 20:16:58 +0200 Subject: [PATCH] fix(app): detect session-not-found across legacy error shapes --- packages/app/src/utils/server-errors.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/packages/app/src/utils/server-errors.ts b/packages/app/src/utils/server-errors.ts index b34ae609ae2f..d329da0dc84d 100644 --- a/packages/app/src/utils/server-errors.ts +++ b/packages/app/src/utils/server-errors.ts @@ -53,14 +53,31 @@ export function sessionNotFoundError(sessionID: string) { } export function isLocalSessionNotFoundError(error: unknown, sessionID: string) { - return error instanceof Error && error.message === sessionNotFoundMessage(sessionID) + if (error instanceof Error && error.message === sessionNotFoundMessage(sessionID)) return true + if (typeof error === "string" && error.includes(sessionNotFoundMessage(sessionID))) return true + return false } export function isSessionNotFoundError(error: unknown, sessionID: string) { + if (isLocalSessionNotFoundError(error, sessionID)) return true const unwrapped = unwrapNamedError(error) if (typeof unwrapped !== "object" || unwrapped === null) return false const value = unwrapped as Record - return value._tag === "SessionNotFoundError" && value.sessionID === sessionID + if (value._tag === "SessionNotFoundError" && value.sessionID === sessionID) return true + if ( + value.name === "NotFoundError" && + typeof value.data === "object" && + value.data !== null && + (value.data as Record).message === sessionNotFoundMessage(sessionID) + ) + return true + if ( + "message" in value && + typeof value.message === "string" && + value.message.includes(sessionNotFoundMessage(sessionID)) + ) + return true + return false } function isConfigInvalidErrorLike(error: unknown): error is ConfigInvalidError {