h-qpack-static-index-invalid
· RFC 9204 §3.1, §4.5.2 · correctness · layer http3 · udp/4505 · MUST
Passing this means: Rejected something invalid, with the code the RFC names.
Anomaly type: response_stream
How each client answered
| Client | Version | Verdict | What happened |
|---|---|---|---|
| curl | ngtcp2/1.11.0 | Inconclusive | Objected, but at the QUIC layer (rejected at the QUIC layer with INTERNAL_ERROR), so the HTTP/3 error code could not be read. §8.1 carries an HTTP/3 connection error in an application close, and this test asks for 0x200 specifically — whether that was the client's reasoning is not observable from here. |
| quinn | noq fork | Inconclusive | The client completed its request and then said nothing further before the window closed. A rejection whose CONNECTION_CLOSE was lost cannot be told apart from a client that never objected: QUIC re-sends that frame only in answer to an incoming packet, so one that goes missing is simply never seen. |
| aioquic | 1.3.0 | Pass | Rejected with the required error code 0x200. |
| chromium | build 1223 | Pass | Rejected with the required error code 0x200. |
| quic-go | quic-go v0.61.0 | Inconclusive | The client completed its request and then said nothing further before the window closed. A rejection whose CONNECTION_CLOSE was lost cannot be told apart from a client that never objected: QUIC re-sends that frame only in answer to an incoming packet, so one that goes missing is simply never seen. |
| quiche | 0.30.0 | Pass | Rejected with the required error code 0x200. |
| neqo | 0.31.1 | Pass | Rejected with the required error code 0x200. |
What the clause requires
Close the connection with QPACK_DECOMPRESSION_FAILED (0x200). The static table has 99 entries, so index 200 refers to nothing, and §3.1 is explicit: "When the decoder encounters an invalid static table index in a field line representation, it MUST treat this as a connection error of type QPACK_DECOMPRESSION_FAILED." The static table needs no permission and never changes size, so unlike the dynamic-table tests this one applies to every client.
Judged against RFC 9204.
Run this one yourself
Every test is reachable from your own client. Nothing here needs an account.
curl -s https://conformance.pqcrypta.com/catalog.json \
| jq '.tests[] | select(.id == "h-qpack-static-index-invalid")'
What this suite is · The full grid · All clients · All tests · Findings