PQ Crypta Logo

Field section that blocks until the encoder stream catches up

Hold the field section, apply the insertions when they arrive on the encoder stream, and complete the request. §2.2.1 makes a section whose Required Insert Count exceeds the decoder's Insert Count a blocked stream — something to be waited on, not an error. Only run when the client advertised both a table capacity and at least one blocked stream; §2.1.2 forbids the encoder from blocking more streams than the decoder promised to support, so a client that permits none cannot be tested on this.

PQ CRYPTA PLATFORM

🏠 Main

📰 News

👤 Account

⟨ QUANTUM ERROR PORTAL ⟩

Navigate the Error Dimensions

Jump to an anomaly59

Every one of these is a page: what the server emits, the clause it is judged against, and how each client answered. The full list carries the verdict tallies too.

h-qpack-blocked-stream · RFC 9204 §2.1.2, §2.2.1 · interoperability · layer http3 · udp/4493 · MUST

Passing this means: Correctly decoded something valid but demanding.

Anomaly type: response_stream

How each client answered

ClientVersionVerdictWhat happened
curl libcurl/8.23.0 ngtcp2/1.25.0 Unsupported the client advertised SETTINGS_QPACK_MAX_TABLE_CAPACITY of 0 and SETTINGS_QPACK_BLOCKED_STREAMS of 0, which forbid the server's encoder from using the dynamic table at all.
quinn noq fork (189b0ed) Pass Decoded it and completed the request.
aioquic 1.3.0 (PyPI wheel) Pass Decoded it and completed the request.
chromium build 1248 Pass Decoded it and completed the request.
quic-go quic-go v0.61.0 (h1:9So2anK4Tp22) Unsupported the client advertised SETTINGS_QPACK_MAX_TABLE_CAPACITY of 0 and SETTINGS_QPACK_BLOCKED_STREAMS of 0, which forbid the server's encoder from using the dynamic table at all.
quiche 0.30.0 (1c8e976) Unsupported the client advertised SETTINGS_QPACK_MAX_TABLE_CAPACITY of 0 and SETTINGS_QPACK_BLOCKED_STREAMS of 0, which forbid the server's encoder from using the dynamic table at all.
neqo 0.31.1 (cac2b74) Pass Decoded it and completed the request.
picoquic 8162550 Unsupported the client advertised SETTINGS_QPACK_MAX_TABLE_CAPACITY of 0 and SETTINGS_QPACK_BLOCKED_STREAMS of 0, which forbid the server's encoder from using the dynamic table at all.
ngtcp2 3c23148 Pass Decoded it and completed the request.
lsquic 4.9.4 (2b30189) Pass Decoded it and completed the request.
xquic 2060a44 Pass Decoded it and completed the request.
msquic 2.7.0 (7e6525d) Unsupported the client advertised SETTINGS_QPACK_MAX_TABLE_CAPACITY of 0 and SETTINGS_QPACK_BLOCKED_STREAMS of 0, which forbid the server's encoder from using the dynamic table at all.
quico 0.7.0 (npm) Pass Decoded it and completed the request.

What the clause requires

Hold the field section, apply the insertions when they arrive on the encoder stream, and complete the request. §2.2.1 makes a section whose Required Insert Count exceeds the decoder's Insert Count a blocked stream — something to be waited on, not an error. Only run when the client advertised both a table capacity and at least one blocked stream; §2.1.2 forbids the encoder from blocking more streams than the decoder promised to support, so a client that permits none cannot be tested on this.

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-blocked-stream")'