fix: increase Node keepAliveTimeout behind reverse proxies to prevent 502s

- Set server.keepAliveTimeout to 185s to safely outlive default Traefik/AWS ALB idle timeouts (typically 60-180s)
- Resolves random "Failed to fetch" edge cases caused by Node.js's notoriously short 5s default timeout
Closes #3008
This commit is contained in:
Khairul
2026-04-07 12:56:10 +08:00
committed by GitHub
parent 3e0ab97b12
commit e2962e6528
+6
View File
@@ -542,6 +542,12 @@ export async function startServer(): Promise<StartedServer> {
resolveSession,
});
const server = createServer(app as unknown as Parameters<typeof createServer>[0]);
// Increase keep-alive timeouts to safely outlive default idle timeouts
// of common reverse proxies and load balancers (like AWS ALB, Nginx, or Traefik).
// This prevents intermittent 502/ECONNRESET errors caused by Node's 5s default.
server.keepAliveTimeout = 185000;
server.headersTimeout = 186000;
if (listenPort !== config.port) {
logger.warn(`Requested port is busy; using next free port (requestedPort=${config.port}, selectedPort=${listenPort})`);