Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Are HTTP status codes in the spec normative? Exhaustive? #1145

Open
DMRobertson opened this issue Jun 28, 2022 · 2 comments
Open

Are HTTP status codes in the spec normative? Exhaustive? #1145

DMRobertson opened this issue Jun 28, 2022 · 2 comments
Labels
clarification An area where the expected behaviour is understood, but the spec could do with being more explicit

Comments

@DMRobertson
Copy link
Contributor

Link to problem area: every API page

Issue

The spec typically specifies that an endpoint returns 200 with a success payload, or 4xx with an error payload. In many cases the status codes listed for HTTP errors are few, and there may be more appropriate ones to choose from. Additionally, I think endpoints almost never specify which matrix error code (e.g. M_UNKNOWN) to return.

It's straightforward enough to change the text of the spec to allow new status codes, but it's not clear if doing so is a backward incompatible change that requires MSCs etc.

Related:

@DMRobertson DMRobertson added the clarification An area where the expected behaviour is understood, but the spec could do with being more explicit label Jun 28, 2022
@Johennes
Copy link
Contributor

Johennes commented Aug 7, 2024

For reference, the gematik spec (which builds upon the Matrix spec) treats HTTP status codes as normative and currently assumes them to be normative in the Matrix spec, too. I think they should not be exhaustive though because an implementation should be allowed to define custom status codes for cases not covered by the spec.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarification An area where the expected behaviour is understood, but the spec could do with being more explicit
Projects
None yet
Development

No branches or pull requests

3 participants