Every anomaly the server will emit on request. Each names the clause it is judged against and the class of behaviour that clause requires — which is not the same everywhere: some of these a client must ignore, some it must reject with a specific code, and some it may answer either way.
-
Version Negotiation offering a reserved version alongside v1
q-version-negotiationRFC 9000 §6
13 of 13 passed
13 Pass
-
Retry packet for source-address validation
q-retryRFC 9000 §8.1.2
13 of 13 passed
13 Pass
-
Reserved transport parameter (31·N+27)
q-reserved-transport-paramRFC 9000 §18.1
13 of 13 passed
13 Pass
-
Unknown frame type in a 1-RTT packet
q-reserved-frameRFC 9000 §12.4
10 of 13 passed
10 Pass3 Fail
-
NEW_CONNECTION_ID followed by RETIRE_CONNECTION_ID
q-cid-rotationRFC 9000 §5.1
12 of 13 passed
12 Pass1 Fail
-
Stateless reset
q-stateless-resetRFC 9000 §10.3
11 of 13 passed
11 Pass2 Fail
-
Deliberately tight MAX_DATA and MAX_STREAM_DATA
q-flow-controlRFC 9000 §4
12 of 13 passed
12 Pass1 Unsupported
-
ACK Frequency extension offered
q-ack-frequencydraft-ietf-quic-ack-frequency
13 of 13 passed
13 Pass
-
Packets marked ECT(0)
q-ecnRFC 9000 §13.4
8 of 13 passed
8 Pass5 Unsupported
-
Path MTU black hole above a threshold
q-pmtu-blackholeRFC 9000 §14, RFC 8899
12 of 13 passed
12 Pass1 Unsupported
-
Server-initiated PATH_CHALLENGE
q-path-challengeRFC 9000 §8.2
13 of 13 passed
13 Pass
-
0-RTT rejected after the client sends early data
q-zero-rtt-rejectRFC 9001 §4.6.2
10 of 13 passed
10 Pass1 Fail2 Unsupported
-
A second path offered mid-connection
q-multipathdraft-ietf-quic-multipath
13 of 13 passed
13 Pass
-
Spontaneous 1-RTT key update
q-key-updateRFC 9001 §6.2
13 of 13 passed
13 Pass
-
Stream limits set to the minimum a request needs
q-stream-limitRFC 9000 §4.6
13 of 13 passed
13 Pass
-
One datagram in twelve dropped once the path is established
q-loss-recoveryRFC 9000 §2.2, §13.3
13 of 13 passed
13 Pass
-
Datagrams arriving from a second server address
q-connection-migrationRFC 9000 §9.6
13 of 13 passed
13 Pass
-
Transport parameter carrying a value the specification forbids
q-invalid-transport-paramRFC 9000 §7.4, §18.2
7 of 13 passed
7 Pass6 Fail
-
425 (Too Early) in answer to a request sent as early data
q-zero-rtt-replayRFC 8470 §5.2
11 of 13 passed
11 Pass2 Unsupported
-
Path marking packets CE, not just ECT(0)
q-ecn-congestionRFC 9000 §13.4
8 of 13 passed
8 Pass5 Unsupported
-
A second key update after the first is acknowledged
q-key-update-repeatedRFC 9001 §6.1, §6.5
13 of 13 passed
13 Pass
-
No stream credit at first, then MAX_STREAMS mid-connection
q-max-streams-creditRFC 9000 §4.6
12 of 13 passed
12 Pass1 Unsupported
-
Reserved SETTINGS identifier (0x1f·N+0x21)
h-grease-settingsRFC 9114 §7.2.4.1
13 of 13 passed
13 Pass
-
Reserved frame type on the response stream
h-grease-frameRFC 9114 §7.2.8
13 of 13 passed
13 Pass
-
Unidirectional stream with a reserved stream type
h-reserved-uni-streamRFC 9114 §6.2.3
12 of 13 passed
12 Pass1 Unsupported
-
SETTINGS containing the same identifier twice
h-duplicate-settingRFC 9114 §7.2.4
13 of 13 passed
13 Pass
-
A DATA frame on the control stream
h-control-frame-unexpectedRFC 9114 §7.2.1
10 of 13 passed
10 Pass3 Fail
-
Control stream whose first frame is not SETTINGS
h-missing-settingsRFC 9114 §6.2.1
10 of 13 passed
10 Pass3 Fail
-
A second control stream opened by the server
h-second-control-streamRFC 9114 §6.2.1
9 of 13 passed
9 Pass3 Fail1 Unsupported
-
Field lines referencing dynamic table insertions
h-qpack-dynamic-tableRFC 9204 §4.3.3, §4.5.2
8 of 13 passed
8 Pass5 Unsupported
-
Huffman-coded field lines with maximal padding
h-qpack-huffmanRFC 9204 §4.1.2, RFC 7541 §5.2
13 of 13 passed
13 Pass
-
Field section larger than the client's advertised maximum
h-oversized-field-sectionRFC 9114 §4.2.2
6 of 13 passed
6 Pass2 Fail5 Unsupported
-
Trailing field section after the body
h-trailersRFC 9114 §4.1
11 of 13 passed
11 Pass1 Fail1 Inconclusive
-
103 Early Hints before the final response
h-early-hintsRFC 9110 §15.2, RFC 8297
12 of 13 passed
12 Pass1 Fail
-
GOAWAY sent mid-connection
h-goawayRFC 9114 §5.2
13 of 13 passed
13 Pass
-
MAX_PUSH_ID sent by the server
h-max-push-idRFC 9114 §7.2.7
9 of 13 passed
9 Pass4 Fail
-
SETTINGS frame on a request stream
h-settings-on-request-streamRFC 9114 §7.2.4
12 of 13 passed
12 Pass1 Fail
-
DATA frame before any HEADERS on the response stream
h-data-before-headersRFC 9114 §4.1
10 of 13 passed
10 Pass3 Fail
-
CANCEL_PUSH for a push ID that was never promised
h-cancel-push-unsolicitedRFC 9114 §7.2.3
5 of 13 passed
5 Pass8 Fail
-
Field section that blocks until the encoder stream catches up
h-qpack-blocked-streamRFC 9204 §2.1.2, §2.2.1
8 of 13 passed
8 Pass5 Unsupported
-
Response stream reset mid-body with H3_REQUEST_CANCELLED
h-response-stream-resetRFC 9114 §8, §4.1
13 of 13 passed
13 Pass
-
PRIORITY_UPDATE sent by the server
h-priority-updateRFC 9218 §7.2
13 of 13 passed
13 Pass
-
SETTINGS_ENABLE_CONNECT_PROTOCOL with a value outside 0 and 1
h-extended-connectRFC 9220 §3, RFC 8441 §3
13 of 13 passed
13 Pass
-
PUSH_PROMISE for a push the client never allowed
h-push-promise-unsolicitedRFC 9114 §7.2.5, §4.6
5 of 13 passed
5 Pass8 Fail
-
SETTINGS_H3_DATAGRAM with a value that is neither 0 nor 1
h-datagram-setting-invalidRFC 9297 §2.1.1
7 of 13 passed
7 Pass6 Fail
-
Encoder stream setting a dynamic table capacity above the client's limit
h-qpack-encoder-overflowRFC 9204 §4.3.1, §6
7 of 13 passed
7 Pass5 Fail1 Unsupported
-
A second GOAWAY naming a larger identifier than the first
h-goaway-increasingRFC 9114 §5.2
8 of 13 passed
8 Pass5 Fail
-
Push stream opened for a push nobody allowed
h-push-stream-unpromisedRFC 9114 §6.2.2
5 of 13 passed
5 Pass7 Fail1 Unsupported
-
Field line indexing a static table entry that does not exist
h-qpack-static-index-invalidRFC 9204 §3.1, §4.5.2
9 of 13 passed
9 Pass4 Fail
-
Datagrams delivered out of order
q-packet-reorderingRFC 9000 §2.2
13 of 13 passed
13 Pass
-
Encoder instruction naming a static index that does not exist
h-qpack-encoder-bad-name-indexRFC 9204 §3.1, §4.3.2
7 of 13 passed
7 Pass5 Fail1 Unsupported
-
Server negotiates only the post-quantum hybrid X25519MLKEM768
t-hybrid-onlyRFC 8446 §4.1.4, draft-ietf-tls-hybrid-design
10 of 13 passed
10 Pass3 Unsupported
-
Server negotiates only classical X25519 against a hybrid offer
t-classical-onlyRFC 8446 §4.1.1, draft-ietf-tls-hybrid-design §5
13 of 13 passed
13 Pass
-
Hybrid key share large enough to split the Initial across packets
t-hybrid-large-helloRFC 9000 §8.1, §14.1, RFC 9001 §4.4
10 of 13 passed
10 Pass3 Unsupported
-
Server selects a key exchange group the client never offered
t-group-not-offeredRFC 8446 §4.1.3, §4.2.8, RFC 9001 §4.8
9 of 13 passed
9 Pass2 Fail2 Unsupported
-
Hybrid key share with an intact X25519 half and a corrupt ML-KEM half
t-corrupt-hybrid-sharedraft-ietf-tls-hybrid-design §3.2, RFC 8446 §4.1.3
11 of 13 passed
11 Pass2 Unsupported
-
Hybrid key share whose length does not match the group named with it
t-hybrid-share-lengthdraft-kwiatkowski-tls-ecdhe-mlkem §3.1.2, RFC 8446 §6.2, RFC 9001 §4.8
9 of 13 passed
9 Pass2 Fail2 Unsupported
-
Post-quantum certificate chain, compressed per RFC 8879
t-cert-compression-pqRFC 8879 §4, RFC 8446 §4.4.2
7 of 13 passed
7 Pass5 Unsupported1 Inconclusive
-
GREASE named group a client must tolerate
t-grease-groupRFC 8701 §4, RFC 8446 §4.2.7
10 of 13 passed
10 Pass3 Unsupported