shutdown() awaited httpServer.close(), which waits for ALL open connections. A lingering WS/keep-alive socket left the process zombie forever after an uncaughtException (e.g. pg 'Connection terminated unexpectedly' to imrnes) — no exit, so systemd Restart=always could never revive it; /api/guilds returned 502 until manual restart. Add 10s force-exit timer in shutdown(); clear it on clean completion.