PQ Crypta Logo

quico — Encoder stream setting a dynamic table capacity above the client's limit

The client did what the clause requires.

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.

Pass

Rejected with the required error code 0x201.

The client did what the clause requires.

What was measured

Client
quico — quico + lemon-tls, 0.7.0 (npm)
Test
Encoder stream setting a dynamic table capacity above the client's limit — h-qpack-encoder-overflow
Clause
RFC 9204 §4.3.1, §6 (MUST)
Class
correctness — Rejected something invalid, with the code the RFC names.
Required behaviour
Close the connection with QPACK_ENCODER_STREAM_ERROR (0x201). §4.3.1 says the new capacity "MUST be lower than or equal to the limit" the decoder advertised, and that a decoder "MUST treat a new dynamic table capacity value that exceeds this limit as a connection error of type QPACK_ENCODER_STREAM_ERROR". Unlike the other two dynamic-table tests, this one runs against every client, because the capacity asked for is computed from the one that client advertised: one byte more, whatever it said. It was a fixed 4096 until 2026-09-20, which exceeded the zero every client then advertised and would have exceeded nothing at all for a client that granted a 4096-byte table.
Measured
2026-10-15

Reproduce it

The suite is the judge, so the reproduction is to point the same client at the same test and let the server report what it saw.

SESSION=$(curl -sX POST https://conformance.pqcrypta.com/session | jq -r .id)
# then drive quico at the test URL and read the verdict:
curl -s https://conformance.pqcrypta.com/report/$SESSION.json | jq '.results["h-qpack-encoder-overflow"]'