Skip to main content
0x0c

APPLICATION_ERROR

RFC 9000 §20

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