Get to know MDN better
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Note: This feature is available in Web Workers.
The code read-only property of the CloseEvent interface returns a WebSocket connection close code indicating the reason the connection was closed.
An integer WebSocket connection close code in the range 1000 - 4999, indicating the reason the connection was closed.
| 0–999 | Not used. | |
| 1000 | Normal Closure | The connection successfully completed the purpose for which it was created. |
| 1001 | Going Away | The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection. |
| 1002 | Protocol error | The endpoint is terminating the connection due to a protocol error. |
| 1003 | Unsupported Data | The connection is being terminated because the endpoint received data of a type it cannot accept. (For example, a text-only endpoint received binary data.) |
| 1004 | Reserved | Reserved. A meaning might be defined in the future. |
| 1005 | No Status Received | Reserved. Indicates that no status code was provided even though one was expected. |
| 1006 | Abnormal Closure | Reserved. Indicates that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected. |
| 1007 | Invalid frame payload data | The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message). |
| 1008 | Policy Violation | The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable. |
| 1009 | Message Too Big | The endpoint is terminating the connection because a data frame was received that is too large. |
| 1010 | Mandatory Ext. | The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't. |
| 1011 | Internal Error | The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request. |
| 1012 | Service Restart | The server is terminating the connection because it is restarting. |
| 1013 | Try Again Later | The server is terminating the connection due to a temporary condition, e.g., it is overloaded and is casting off some of its clients. |
| 1014 | Bad Gateway | The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code. |
| 1015 | TLS handshake | Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified). |
| 1016–2999 | For definition by future revisions of the WebSocket Protocol specification, and for definition by extension specifications. | |
| 3000–3999 | For use by libraries, frameworks, and applications. These status codes are registered directly with IANA. The interpretation of these codes is undefined by the WebSocket protocol. | |
| 4000–4999 | For private use, and thus can't be registered. Such codes can be used by prior agreements between WebSocket applications. The interpretation of these codes is undefined by the WebSocket protocol. |
The following example prints the value of code to the console.
| WebSockets # ref-for-dom-closeevent-code② |
Enable JavaScript to view this browser compatibility table.
This page was last modified on Apr 28, 2025 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.