PQ Crypta Logo

DATA frame before any HEADERS on the response stream

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.

PQ CRYPTA PLATFORM

🏠 Main

🧪 Interactive Apps

📰 News

🛡️ PQ Crypta Proxy

👤 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-data-before-headers · RFC 9114 §4.1 · correctness · layer http3 · udp/4491 · MUST

Passing this means: Rejected something invalid, with the code the RFC names.

Anomaly type: response_stream

How each client answered

ClientVersionVerdictWhat 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 0x105 specifically — whether that was the client's reasoning is not observable from here.
quinn noq fork Pass Rejected with the required error code 0x105.
aioquic 1.3.0 Pass Rejected with the required error code 0x105.
chromium build 1223 Pass Rejected with the required error code 0x105.
quic-go quic-go v0.61.0 Pass Rejected with the required error code 0x105.
quiche 0.30.0 Fail Accepted a protocol violation and carried on. The anomaly was in the response the client read and delivered, so it was seen; this should have been rejected.
neqo 0.31.1 Pass Rejected with the required error code 0x105.
picoquic 8162550 Pass Rejected with the required error code 0x105.
ngtcp2 3c23148 Pass Rejected with the required error code 0x105.
lsquic 4.9.4 Pass Rejected with the required error code 0x105.
xquic 2060a44 Inconclusive The run did not exercise this test: the endpoint refused the connection before a handshake existed (detected an error with protocol compliance that was not covered by more specific error codes in STREAMS_BLOCKED_BIDI: illegal frame type in handshake). On this tier that is what a client offering no key exchange group this port will negotiate looks like -- a fact about the client, not a gap in the run.
msquic 2.7.0 Fail Rejected, but with error 0x102 where the specification requires 0x105. The violation was detected; the code reported is wrong.

What the clause requires

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.

Judged against RFC 9114.

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-data-before-headers")'