Closed vasilvv closed 3 years ago
Endpoints should use the most appropriate error code, or a general purpose one. Grease error codes can be used to close grease streams, the spec states that somewhere.
I see your point but an implementation that chooses to ignore the specification guidance on the specific error code to use can to cause issues no matter what we statebin the spec.
Okay, I think I did not read the spec carefully enough, it clearly says this only applies to H3_NO_ERROR
.
We currently reserve a subset of the error code space for GREASE purposes, at least in HTTP/3. However, we give no guidance on how to use this. One possible interpretation is that peers should randomly replace their real error codes with a GREASE codepoint; however, some of the error codes we use do have special meaning (e.g. H3_REQUEST_REJECTED would normally result in the browser retrying the request) that would be lost, so that does not seem like an appropriate approach.
I think we should provide an explicit guidance to implementations or un-reserve those codepoints.