sqlmapproject/sqlmap · error · H2ProtocolError

101 Switching Protocols is not valid in HTTP/2

Error message

101 Switching Protocols is not valid in HTTP/2

What it means

Error "101 Switching Protocols is not valid in HTTP/2" thrown in sqlmapproject/sqlmap.

Source

Thrown at lib/request/http2.py:872


def _validate_response_field_section(headers, trailers=False):
    regular_seen = False
    status = None
    for name, value in headers:
        name = _as_bytes(name)
        value = _as_bytes(value)
        _validate_field_value(value)
        if name.startswith(b":"):
            if trailers or regular_seen or name != b":status" or status is not None:
                raise H2ProtocolError("invalid response pseudo-field ordering or duplication")
            if len(value) != 3 or not value.isdigit():
                raise H2ProtocolError("invalid :status pseudo-field")
            status = int(value)
            if not 100 <= status <= 599:
                raise H2ProtocolError("response status is outside the valid range")
            if status == 101:
                raise H2ProtocolError("101 Switching Protocols is not valid in HTTP/2")
        else:
            regular_seen = True
            if name.lower() != name:
                raise H2ProtocolError("uppercase HTTP/2 field name")
            _validate_regular_name(name)
            if name in _CONNECTION_FIELDS:
                raise H2ProtocolError("connection-specific field in HTTP/2 response")
    content_length = _parse_content_length(headers, trailers=trailers)
    if trailers:
        return None, None
    if status is None:
        raise H2ProtocolError("response field section lacks :status")
    return status, content_length


class _ResponseState(object):
    def __init__(self, stream_id, request_method):
        self.stream_id = stream_id

View on GitHub (pinned to 0a35b20e39)

When it happens

Trigger: Thrown at lib/request/http2.py:872 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of sqlmapproject/sqlmap@0a35b20e39 (2026-08-26). Data as JSON: /api/errors/c082aa653ab31294. Report an issue: GitHub.