WebSocket 1000 Normal Closure vs 1013 Try Again Later
Both WebSocket 1000 (Normal Closure) and 1013 (Try Again Later) belong to the WebSocket Close Codes category. 1000 indicates that the connection has been closed cleanly, meaning the purpose for which it was established has been fulfilled. Both endpoints agree the session is complete. Meanwhile, 1013 means that the server is terminating the connection due to a temporary condition, such as being overloaded. The client should reconnect after a back-off period.
Описание
The connection has been closed cleanly, meaning the purpose for which it was established has been fulfilled. Both endpoints agree the session is complete.
Когда вы это видите
The WebSocket connection closed gracefully after both sides finished exchanging data. This is the expected close code for a successful session.
Как исправить
No fix needed — this indicates everything worked as intended. If you did not expect the connection to close, check your application logic for premature close() calls.
Описание
The server is terminating the connection due to a temporary condition, such as being overloaded. The client should reconnect after a back-off period.
Когда вы это видите
The server is temporarily overloaded or throttling connections. Unlike 1012, this does not indicate a restart — the server is running but cannot serve more clients right now.
Как исправить
Reconnect using exponential backoff (start at 1 second, double each attempt). If persistent, investigate server capacity, scale horizontally, or reduce the number of concurrent connections.
Ключевые различия
WebSocket 1000: The connection has been closed cleanly, meaning the purpose for which it was established has been fulfilled. Both endpoints agree the session is complete.
WebSocket 1013: The server is terminating the connection due to a temporary condition, such as being overloaded. The client should reconnect after a back-off period.
You encounter 1000 when the WebSocket connection closed gracefully after both sides finished exchanging data. This is the expected close code for a successful session.
You encounter 1013 when the server is temporarily overloaded or throttling connections. Unlike 1012, this does not indicate a restart — the server is running but cannot serve more clients right now.
Когда что использовать
For 1000 (Normal Closure): No fix needed — this indicates everything worked as intended. If you did not expect the connection to close, check your application logic for premature close() calls. For 1013 (Try Again Later): Reconnect using exponential backoff (start at 1 second, double each attempt). If persistent, investigate server capacity, scale horizontally, or reduce the number of concurrent connections.