From 0d9b72e00ae3596ad085d540df3cf3cdcbb85a51 Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Sat, 6 Dec 2025 15:20:51 -0600 Subject: [PATCH] fix(wss): enhance error handling and logging for SSH connections in WebSocket server --- .../server/wss/docker-container-terminal.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/apps/dokploy/server/wss/docker-container-terminal.ts b/apps/dokploy/server/wss/docker-container-terminal.ts index e39db53fa..155d7f0cc 100644 --- a/apps/dokploy/server/wss/docker-container-terminal.ts +++ b/apps/dokploy/server/wss/docker-container-terminal.ts @@ -58,7 +58,12 @@ export const setupDockerContainerTerminalWebSocketServer = ( `docker exec -it -w / ${containerId} ${activeWay}`, { pty: true }, (err, stream) => { - if (err) throw err; + if (err) { + console.error("SSH exec error:", err); + ws.close(); + conn.end(); + return; + } stream .on("close", (code: number, _signal: string) => { @@ -93,10 +98,20 @@ export const setupDockerContainerTerminalWebSocketServer = ( ws.on("close", () => { stream.end(); + // Ensure SSH connection is closed when WebSocket closes + conn.end(); }); }, ); }) + .on("error", (err) => { + console.error("SSH connection error:", err); + if (ws.readyState === ws.OPEN) { + ws.send(`SSH error: ${err.message}`); + ws.close(); + } + conn.end(); + }) .connect({ host: server.ipAddress, port: server.port,