RFC Errata
RFC 9114, "HTTP/3", June 2022
Source of RFC: quic (wit)
Errata ID: 8190
Status: Rejected
Type: Technical
Publication Format(s) : TEXT, HTML
Reported By: Cory Benfield
Date Reported: 2024-11-28
Rejected by: Zaheduzzaman Sarker
Date Rejected: 2025-03-18
Section 7.2.6 says:
The GOAWAY frame is always sent on the control stream. In the server-to-client direction, it carries a QUIC stream ID for a client- initiated bidirectional stream encoded as a variable-length integer. A client MUST treat receipt of a GOAWAY frame containing a stream ID of any other type as a connection error of type H3_ID_ERROR. In the client-to-server direction, the GOAWAY frame carries a push ID encoded as a variable-length integer.
It should say:
The GOAWAY frame is always sent on the control stream. In the server-to-client direction, it carries a QUIC stream ID for a client- initiated bidirectional stream encoded as a variable-length integer. A client MUST treat receipt of a GOAWAY frame containing a stream ID of any other type as a connection error of type H3_ID_ERROR. In the client-to-server direction, the GOAWAY frame carries a push ID encoded as a variable-length integer. A server MUST treat receipt of a GOAWAY frame containing a stream ID of any other type as a connection error of type H3_ID_ERROR.
Notes:
The MUST requiring a stream error on an invalid stream ID was missing in the client-to-server direction. This is related to erratum 7780, and likely entered the spec for the same reason.
--VERIFIER NOTES--
In H3 push IDs are their own namespace. There is no concept of using a wrong stream ID for push IDs. When a push promise is fulfilled, a server initiates a new unidirectional stream with a stream type header indicating its of push type, then followed by the push ID.