WebSocket 1006 Abnormal Closure vs 1013 Try Again Later
Both WebSocket 1006 (Abnormal Closure) and 1013 (Try Again Later) belong to the WebSocket Close Codes category. 1006 indicates that a reserved value indicating the connection was closed abnormally without a Close frame being sent. This code must not be set by an endpoint. 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.
説明
A reserved value indicating the connection was closed abnormally without a Close frame being sent. This code must not be set by an endpoint.
このコードが表示される場合
The TCP connection dropped unexpectedly — the server crashed, the network cable was unplugged, or a firewall killed the idle connection. No proper WebSocket Close handshake occurred.
解決方法
Implement reconnection with exponential backoff. Use WebSocket ping/pong frames to detect dead connections early. Check for network-level timeouts or aggressive load balancer idle limits.
説明
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 1006: A reserved value indicating the connection was closed abnormally without a Close frame being sent. This code must not be set by an endpoint.
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 1006 when the TCP connection dropped unexpectedly — the server crashed, the network cable was unplugged, or a firewall killed the idle connection. No proper WebSocket Close handshake occurred.
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 1006 (Abnormal Closure): Implement reconnection with exponential backoff. Use WebSocket ping/pong frames to detect dead connections early. Check for network-level timeouts or aggressive load balancer idle limits. 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.