Skip to main content
0x6

FRAME_SIZE_ERROR

Stream-levelConnection-levelRFC 9113 §7

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