sqlmapproject/sqlmap · error · H2Error

stream %d reset by peer (error %d)

Error message

stream %d reset by peer (error %d)

What it means

Error "stream %d reset by peer (error %d)" thrown in sqlmapproject/sqlmap.

Source

Thrown at lib/request/http2.py:1236

        elif ftype == GOAWAY:
            if sid != 0 or len(payload) < 8:
                self._connection_error("invalid GOAWAY frame")
            self.usable = False
            last_sid = struct.unpack("!I", payload[:4])[0] & MAX_STREAM_ID
            active = sorted(states)
            unprocessed = [stream_id for stream_id in active if stream_id > last_sid]
            if len(unprocessed) == len(active):
                raise _UnprocessedStream("GOAWAY confirms active stream(s) were not processed")
            if unprocessed:
                raise H2Error("GOAWAY partially processed a multi-stream exchange")
        elif ftype == RST_STREAM:
            if sid == 0 or len(payload) != 4:
                self._connection_error("invalid RST_STREAM frame")
            if sid in states:
                error_code = struct.unpack("!I", payload)[0]
                if len(states) == 1 and error_code == REFUSED_STREAM:
                    raise _UnprocessedStream("peer refused the stream before processing")
                raise H2Error("stream %d reset by peer (error %d)" % (sid, error_code))
            if sid % 2 == 0 or sid >= self.next_sid:
                self._connection_error("RST_STREAM referenced an idle stream")
        elif ftype == PUSH_PROMISE:
            self._connection_error("server push received despite SETTINGS_ENABLE_PUSH=0")
        elif ftype in (HEADERS, CONTINUATION):
            continuation_sid = self._process_header_frame(
                ftype, flags, sid, payload, states, continuation_sid
            )
        elif ftype == DATA:
            if sid == 0:
                self._connection_error("DATA frame used stream 0")
            self._process_data_frame(flags, sid, payload, states)
        elif ftype == PRIORITY:
            if sid == 0 or len(payload) != 5:
                self._connection_error("invalid PRIORITY frame")
        # Unknown extension frames are ignored, as required by HTTP/2.
        return continuation_sid

View on GitHub (pinned to 0a35b20e39)

When it happens

Trigger: Thrown at lib/request/http2.py:1236 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/72ad7d7b99006f42. Report an issue: GitHub.