fix: prevent reconnection loop on concurrent connection close

- Don't reconnect when server closes old connection with code 4000
- Code 4000 means new connection was established, not an error
- Prevents infinite reconnection loop between old/new connections

Refs: terminal switching between 4000 error and connected
This commit is contained in:
2026-05-24 12:59:28 +00:00
parent fc873e2d6b
commit 8b08c3886c
+5 -1
View File
@@ -133,7 +133,7 @@ export const TerminalComponent: React.FC<TerminalProps> = ({
heartbeatCheckRef.current = null;
}
if (event.code !== 1000) {
if (event.code !== 1000 && event.code !== 4000) {
setError(`Connection closed (code: ${event.code})`);
// Attempt reconnection
@@ -146,6 +146,10 @@ export const TerminalComponent: React.FC<TerminalProps> = ({
}
}, delay);
}
} else if (event.code === 4000) {
// Server closed old connection for concurrent connection - don't reconnect
// The new connection is already established
console.log("Old WebSocket closed by server (new connection established)");
}
};