diff --git a/packages/db/src/index.ts b/packages/db/src/index.ts index 0cd5ba6..46f0108 100644 --- a/packages/db/src/index.ts +++ b/packages/db/src/index.ts @@ -20,21 +20,17 @@ export type Database = ReturnType; */ export function withDb(handler: () => Promise): Promise { return handler().catch((error) => { - if (error instanceof Response) throw error; // Re-throw React Router responses (redirects, data()) - const message = error instanceof Error ? error.message : "Unknown error"; - if ( - message.includes("connect") || - message.includes("ECONNREFUSED") || - message.includes("DrizzleQueryError") || - message.includes("AggregateError") || - message.includes("database") - ) { - throw new Response(JSON.stringify({ error: "Database unavailable" }), { - status: 503, - headers: { "Content-Type": "application/json" }, - }); - } - throw error; + // Re-throw React Router responses (redirects, data() throws) + if (error instanceof Response) throw error; + + // Any other error from a DB-wrapped handler is treated as DB unavailable + const message = error instanceof Error ? error.message : String(error); + console.error("[withDb] Database error:", message); + + throw new Response(JSON.stringify({ error: "Database unavailable" }), { + status: 503, + headers: { "Content-Type": "application/json" }, + }); }); }