FLOW_CONTROL_ERROR
QUIC FLOW_CONTROL_ERROR (0x03) is sent when an endpoint receives more data than its advertised flow control limits allow. QUIC implements per-stream and per-connection flow control windows. Sending more data than the window allows violates the protocol and terminates the entire connection.
Code
0x03
Decimal
3
Standard
RFC 9000 §20
Description
QUIC flow control is credit-based: the receiver advertises how many bytes it is willing to receive via MAX_DATA (connection-level) and MAX_STREAM_DATA (per-stream) frames. The sender must not transmit data beyond these credits. If an implementation sends STREAM frames with offsets that exceed the receiver's advertised limits, the receiver sends CONNECTION_CLOSE with FLOW_CONTROL_ERROR. This is always a connection-level error – the entire connection is closed, not just the offending stream. Flow control errors indicate a bug in the sender's QUIC implementation. Correct implementations track outstanding credits and block sending when credits are exhausted, waiting for MAX_DATA/MAX_STREAM_DATA updates before resuming.
Common Causes
- –Sender transmitted STREAM data beyond the advertised MAX_DATA credit
- –Sender transmitted beyond a stream's MAX_STREAM_DATA limit
- –QUIC implementation bug in flow control credit tracking
- –Integer overflow in window size calculation in the sender