Objected at the QUIC layer (rejected at the QUIC layer with INTERNAL_ERROR) instead of signalling the HTTP/3 error. The violation was detected and rejected, which is the right instinct; §8.1 requires an HTTP/3 connection error to be carried in an application close, and this test names 0x105. A transport close carries no HTTP/3 code at all, so a peer has no way to learn what was wrong.
The client did something the clause forbids, or failed to do what it requires.
What was measured
- Client
- curl — ngtcp2 + nghttp3, libcurl/8.23.0 ngtcp2/1.25.0
- Test
- DATA frame before any HEADERS on the response stream —
h-data-before-headers - Clause
- RFC 9114 §4.1 (MUST)
- Class
- correctness — Rejected something invalid, with the code the RFC names.
- Required behaviour
- Close the connection with H3_FRAME_UNEXPECTED. A response begins with a field section, and §4.1 makes "receipt of an invalid sequence of frames" a connection error of that type — a body arriving before the headers that describe it is exactly that.
- Measured
- 2026-10-27
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 curl at the test URL and read the verdict:
curl -s https://conformance.pqcrypta.com/report/$SESSION.json | jq '.results["h-data-before-headers"]'