Skip to main content
0x1

PROTOCOL_ERROR

Stream-levelConnection-levelRFC 9113 §7

PROTOCOL_ERROR (0x1) indicates a generic HTTP/2 protocol violation. It covers any case where an endpoint detects a protocol error that does not have a more specific error code. This is the most common connection-level error in HTTP/2 and indicates a non-compliant implementation on the peer side.

Code

0x1

Decimal

1

Standard

RFC 9113 §7

Description

PROTOCOL_ERROR is the catch-all for HTTP/2 protocol violations. It covers: receiving a frame type not expected in the current connection state, pseudo-headers in the wrong position, missing mandatory pseudo-headers, or a response with both Content-Length and incorrect body size. It can be sent in a RST_STREAM (stream-level violation) or GOAWAY (connection-level violation). Modern HTTP/2 implementations are strict about protocol conformance – legacy HTTP/1.1 quirks that were tolerated do not carry over to HTTP/2.

Common Causes

  • Frame received in invalid connection state
  • Pseudo-headers not at the start of header block
  • Missing :method, :path, or :scheme pseudo-header in request
  • PUSH_PROMISE received on a half-closed stream
  • DATA frame received on a stream in half-closed (remote) state