Skip to main content
0x06

FINAL_SIZE_ERROR

RFC 9000 §20

QUIC FINAL_SIZE_ERROR (0x06) is sent when the final size of a stream is inconsistent. A stream's final size is established when a STREAM frame with FIN is received. If a subsequent STREAM or RESET_STREAM frame claims a different final size, or if data is received beyond the established final size, the connection is terminated.

Code

0x06

Decimal

6

Standard

RFC 9000 §20

Description

Once a QUIC stream's FIN bit is set in a STREAM frame, that offset establishes the stream's final size. All data for the stream must fit within this size. Three conditions trigger FINAL_SIZE_ERROR: (1) receiving STREAM data at an offset beyond the established final size, (2) receiving RESET_STREAM with a final size smaller than already-received data, (3) receiving RESET_STREAM with a different final size than an already-established FIN offset. This error prevents ambiguity about stream completeness. QUIC's reliable delivery depends on knowing exactly how many bytes a stream contains. Changing the final size after it is established would break reassembly. FINAL_SIZE_ERROR indicates a serious bug in the sender's stream management. It should never occur in a correct QUIC implementation.

Common Causes

  • STREAM data received at offset beyond the FIN-established final size
  • RESET_STREAM with final size smaller than already-received stream data
  • RESET_STREAM with final size different from the FIN-established size
  • QUIC implementation bug in stream final size tracking