FRAME_SIZE_ERROR
FRAME_SIZE_ERROR (0x6) is sent when an HTTP/2 frame's size violates frame-type-specific constraints. Fixed-size frames (PRIORITY, RST_STREAM, SETTINGS, WINDOW_UPDATE, PING) have mandatory lengths. A frame that deviates from its required length triggers this error, which may be connection-level or stream-level depending on which frame was invalid.
Code
0x6
Decimal
6
Standard
RFC 9113 §7
Description
HTTP/2 defines precise size requirements for frame types. SETTINGS frames must have a payload that is a multiple of 6 bytes. RST_STREAM must be exactly 4 bytes. PING must be exactly 8 bytes. WINDOW_UPDATE must be exactly 4 bytes. PRIORITY must be exactly 5 bytes. Exceeding SETTINGS_MAX_FRAME_SIZE (default 16,384 bytes) also triggers FRAME_SIZE_ERROR. When the violation is in a frame that could affect the connection state (SETTINGS, GOAWAY, HEADERS without stream ID), the error must be connection-level. Stream-specific frames can use stream-level RST_STREAM.
Common Causes
- –SETTINGS frame payload not a multiple of 6 bytes
- –RST_STREAM frame payload not exactly 4 bytes
- –PING frame payload not exactly 8 bytes
- –DATA or HEADERS frame exceeds negotiated SETTINGS_MAX_FRAME_SIZE
- –CONTINUATION frame received after a non-HEADERS/PUSH_PROMISE frame