Fix Prisma
1 fix: error koneksi Prisma dengan retry mechanism
2
3 Perubahan:
4 - src/lib/prisma.ts: Tambah retry (3x) dengan exponential backoff saat connect
5 - src/lib/prisma-retry.ts: NEW - Utility wrapper untuk retry operations
6 - src/app/api/user-validate/route.ts: Improve error logging dengan detail
7 - src/middleware.tsx: Clean up commented code
8
9 Fitur:
10 - Auto retry saat database connection gagal
11 - Explicit () di production
12 - Better error logging untuk debugging
13 - Reusable retry wrapper (withRetry, withTimeout)
14
15 Testing:
16 - Build berhasil ✅
17 - Type checking passed ✅
18
19 Fixes: Error in PostgreSQL connection: Error { kind: Closed, cause: None }
### No Issue
This commit is contained in:
@@ -76,15 +76,27 @@ export async function GET(req: Request) {
|
||||
data: user,
|
||||
});
|
||||
} catch (error) {
|
||||
console.error("Error in user validation:", error);
|
||||
const errorMsg = error instanceof Error ? error.message : 'Unknown error';
|
||||
const errorStack = error instanceof Error ? error.stack : 'No stack';
|
||||
|
||||
// Log detailed error for debugging
|
||||
console.error("❌ [USER-VALIDATE] Error:", errorMsg);
|
||||
console.error("❌ [USER-VALIDATE] Stack:", errorStack);
|
||||
console.error("❌ [USER-VALIDATE] Time:", new Date().toISOString());
|
||||
|
||||
// Check if it's a database connection error
|
||||
if (errorMsg.includes("Prisma") || errorMsg.includes("database") || errorMsg.includes("connection")) {
|
||||
console.error("❌ [USER-VALIDATE] Database connection error detected!");
|
||||
console.error("❌ [USER-VALIDATE] DATABASE_URL exists:", !!process.env.DATABASE_URL);
|
||||
}
|
||||
|
||||
return NextResponse.json(
|
||||
{
|
||||
success: false,
|
||||
message: "Terjadi kesalahan pada server",
|
||||
error: process.env.NODE_ENV === 'development' ? errorMsg : 'Internal server error',
|
||||
},
|
||||
{ status: 500 }
|
||||
);
|
||||
}
|
||||
// Removed prisma.$disconnect() from here to prevent connection pool exhaustion
|
||||
// Prisma connections are handled globally and shouldn't be disconnected on each request
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user