From a3a45b4239262831bb0cf290b4526a2dca0c0b94 Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Tue, 9 Jun 2026 14:09:36 -0700 Subject: [PATCH] add safe read --- .../private/routers/auth/transferSession.ts | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/server/private/routers/auth/transferSession.ts b/server/private/routers/auth/transferSession.ts index 78673e8a0..d26664dfd 100644 --- a/server/private/routers/auth/transferSession.ts +++ b/server/private/routers/auth/transferSession.ts @@ -17,8 +17,7 @@ import createHttpError from "http-errors"; import { z } from "zod"; import { fromError } from "zod-validation-error"; import logger from "@server/logger"; -import { sessions, sessionTransferToken } from "@server/db"; -import { db } from "@server/db"; +import { db, safeRead, sessions, sessionTransferToken } from "@server/db"; import { eq } from "drizzle-orm"; import { response } from "@server/lib/response"; import { encodeHexLowerCase } from "@oslojs/encoding"; @@ -57,15 +56,19 @@ export async function transferSession( sha256(new TextEncoder().encode(token)) ); - const [existing] = await db - .select() - .from(sessionTransferToken) - .where(eq(sessionTransferToken.token, tokenRaw)) - .innerJoin( - sessions, - eq(sessions.sessionId, sessionTransferToken.sessionId) - ) - .limit(1); + const result = await safeRead((db) => + db + .select() + .from(sessionTransferToken) + .where(eq(sessionTransferToken.token, tokenRaw)) + .innerJoin( + sessions, + eq(sessions.sessionId, sessionTransferToken.sessionId) + ) + .limit(1) + ); + + const [existing] = result; if (!existing) { return next(