PQ Crypta Logo

curl — Push stream opened for a push nobody allowed

The suite could not establish what this client does here. That is a shortcoming of the run rather than anything about the client, and every one of these is on our list to remove.

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.

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 0x108 specifically — whether that was the client's reasoning is not observable from here.

The suite could not establish what this client does here. That is a shortcoming of the run rather than anything about the client, and every one of these is on our list to remove.

What was measured

Client
curl — ngtcp2 + nghttp3, ngtcp2/1.11.0
Test
Push stream opened for a push nobody allowedh-push-stream-unpromised
Clause
RFC 9114 §6.2.2 (MUST)
Class
correctness — Rejected something invalid, with the code the RFC names.
Required behaviour
Close the connection with H3_ID_ERROR. §6.2.2 does not require the push to have been promised first — the stream alone is enough: a client "MUST treat receipt of a push stream as a connection error of type H3_ID_ERROR when no MAX_PUSH_ID frame has been sent", and no client under test sends one. Distinct from the PUSH_PROMISE test, which puts the same violation in a frame on the control stream. This one opens the push stream itself, which a client has to recognise by its stream type before any frame inside it is read.
Measured
2026-09-18

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-push-stream-unpromised"]'