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,