QUIC error codes appear in CONNECTION_CLOSE frames. All 17 codes from RFC 9000 §20.
18
Error Codes
NO_ERROR
QUIC NO_ERROR (0x00) is used in CONNECTION_CLOSE to signal a clean connection shutdown with no error condition.
INTERNAL_ERROR
QUIC INTERNAL_ERROR (0x01) is sent when the QUIC implementation encounters an unexpected internal failure that prevents continuing the connection.
CONNECTION_REFUSED
QUIC CONNECTION_REFUSED (0x02) is sent when the server refuses to accept a new connection.
FLOW_CONTROL_ERROR
QUIC FLOW_CONTROL_ERROR (0x03) is sent when an endpoint receives more data than its advertised flow control limits allow.
STREAM_LIMIT_ERROR
QUIC STREAM_LIMIT_ERROR (0x04) is sent when an endpoint receives a frame for a stream identifier that exceeds its advertised stream limit.
STREAM_STATE_ERROR
QUIC STREAM_STATE_ERROR (0x05) is sent when a STREAM frame is received for a stream that is not in a state that permits that frame.
FINAL_SIZE_ERROR
QUIC FINAL_SIZE_ERROR (0x06) is sent when the final size of a stream is inconsistent.
FRAME_ENCODING_ERROR
QUIC FRAME_ENCODING_ERROR (0x07) is sent when a QUIC frame cannot be decoded.
TRANSPORT_PARAMETER_ERROR
QUIC TRANSPORT_PARAMETER_ERROR (0x08) is sent when a QUIC transport parameter is invalid, duplicated, or forbidden in a particular context.
CONNECTION_ID_LIMIT_ERROR
QUIC CONNECTION_ID_LIMIT_ERROR (0x09) is sent when too many connection IDs have been provided.
PROTOCOL_VIOLATION
QUIC PROTOCOL_VIOLATION (0x0a) is the catch-all for generic QUIC protocol violations that do not have a more specific error code.
INVALID_TOKEN
QUIC INVALID_TOKEN (0x0b) is sent when the server receives an Initial packet containing a token that cannot be validated.
APPLICATION_ERROR
QUIC APPLICATION_ERROR (0x0c) is sent when the application running over QUIC encounters an error and needs to close the connection.
CRYPTO_BUFFER_EXCEEDED
QUIC CRYPTO_BUFFER_EXCEEDED (0x0d) is sent when the total amount of TLS handshake data in CRYPTO frames exceeds the implementation's buffer limit.
KEY_UPDATE_ERROR
QUIC KEY_UPDATE_ERROR (0x0e) is sent when a problem occurs with packet protection key updates.
AEAD_LIMIT_REACHED
QUIC AEAD_LIMIT_REACHED (0x0f) is sent when the usage limits for an AEAD key have been reached.
NO_VIABLE_PATH
QUIC NO_VIABLE_PATH (0x10) is sent when there is no viable network path to the peer.
VERSION_NEGOTIATION_ERROR
QUIC VERSION_NEGOTIATION_ERROR (0x11) is sent when a QUIC version negotiation attempt fails.