APPLICATION_ERROR
QUIC APPLICATION_ERROR (0x0c) is sent when the application running over QUIC encounters an error and needs to close the connection. It is a transport-layer placeholder for application-defined error conditions. HTTP/3 uses this when it needs to close a QUIC connection for application-layer reasons.
Code
0x0c
Decimal
12
Standard
RFC 9000 §20
Description
QUIC separates transport-layer errors (0x00-0x10) from application-layer errors. APPLICATION_ERROR is the transport layer's way of saying the application decided to close the connection. The actual application-layer error is communicated separately – for HTTP/3, via HTTP/3-defined error codes in the application layer's CONNECTION_CLOSE data. This code allows QUIC to convey that an application-layer error occurred without the transport layer needing to understand application-specific error semantics. HTTP/3 (RFC 9114 §8.1) defines its own error codes (H3_NO_ERROR, H3_GENERAL_PROTOCOL_ERROR, etc.) which are carried as the application error code alongside APPLICATION_ERROR. When debugging, APPLICATION_ERROR alone is not sufficient – the application-specific error code in the frame's application_protocol_error_code field provides the actionable information.
Common Causes
- –HTTP/3 application error requiring connection closure
- –Application-defined protocol error not representable as a transport error
- –Application decided to close the connection for business logic reasons