PROTOCOL_ERROR
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