Add standard error responses (MSC3743). (#1347)

This commit is contained in:
Patrick Cloke 2022-11-22 10:51:29 -05:00 committed by GitHub
parent dfc8a2e184
commit eeb43043ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 41 additions and 3 deletions

View file

@ -0,0 +1 @@
Add information on standard error responses for unknown endpoints/methods.

View file

@ -0,0 +1 @@
Add information on standard error responses for unknown endpoints/methods.

View file

@ -0,0 +1 @@
Add information on standard error responses for unknown endpoints/methods.

View file

@ -0,0 +1 @@
Add information on standard error responses for unknown endpoints/methods.

View file

@ -0,0 +1 @@
Add information on standard error responses for unknown endpoints/methods.

View file

@ -164,6 +164,14 @@ each is as follows:
Homeservers should periodically try again for the newer endpoints Homeservers should periodically try again for the newer endpoints
because the application service may have been updated. because the application service may have been updated.
#### Unknown routes
If a request for an unsupported (or unknown) endpoint is received then the server
must respond with a 404 `M_UNRECOGNIZED` error.
Similarly, a 405 `M_UNRECOGNIZED` error is used to denote an unsupported method
to a known endpoint.
#### Pushing events #### Pushing events
The application service API provides a transaction API for sending a The application service API provides a transaction API for sending a

View file

@ -107,6 +107,11 @@ No resource was found for this request.
Too many requests have been sent in a short period of time. Wait a while Too many requests have been sent in a short period of time. Wait a while
then try again. then try again.
`M_UNRECOGNIZED`
The server did not understand the request. This is expected to be returned with
a 404 HTTP status code if the endpoint is not implemented or a 405 HTTP status
code if the endpoint is implemented, but the incorrect HTTP method is used.
`M_UNKNOWN` `M_UNKNOWN`
An unknown error has occurred. An unknown error has occurred.
@ -116,9 +121,6 @@ The following error codes are specific to certain endpoints.
<!-- TODO: move them to the endpoints that return them --> <!-- TODO: move them to the endpoints that return them -->
`M_UNRECOGNIZED`
The server did not understand the request.
`M_UNAUTHORIZED` `M_UNAUTHORIZED`
The request was not correctly authorized. Usually due to login failures. The request was not correctly authorized. Usually due to login failures.

View file

@ -108,6 +108,11 @@ attempting to verify ownership of a given third party address.
The request contained an unrecognised value, such as an unknown token or The request contained an unrecognised value, such as an unknown token or
medium. medium.
This is also used as the response if a server did not understand the request.
This is expected to be returned with a 404 HTTP status code if the endpoint is
not implemented or a 405 HTTP status code if the endpoint is implemented, but
the incorrect HTTP method is used.
`M_THREEPID_IN_USE` `M_THREEPID_IN_USE`
The third party identifier is already in use by another user. Typically The third party identifier is already in use by another user. Typically
this error will have an additional `mxid` property to indicate who owns this error will have an additional `mxid` property to indicate who owns

View file

@ -37,6 +37,16 @@ notification provider (e.g. APNS, GCM).
Mobile Device or Client Mobile Device or Client
``` ```
## API standards
### Unsupported endpoints
If a request for an unsupported (or unknown) endpoint is received then the server
must respond with a 404 `M_UNRECOGNIZED` error.
Similarly, a 405 `M_UNRECOGNIZED` error is used to denote an unsupported method
to a known endpoint.
## Homeserver behaviour ## Homeserver behaviour
This describes the format used by "HTTP" pushers to send notifications This describes the format used by "HTTP" pushers to send notifications

View file

@ -84,6 +84,14 @@ to be an IP address in which case SNI is not supported and should not be sent.
Servers are encouraged to make use of the [Certificate Servers are encouraged to make use of the [Certificate
Transparency](https://www.certificate-transparency.org/) project. Transparency](https://www.certificate-transparency.org/) project.
### Unsupported endpoints
If a request for an unsupported (or unknown) endpoint is received then the server
must respond with a 404 `M_UNRECOGNIZED` error.
Similarly, a 405 `M_UNRECOGNIZED` error is used to denote an unsupported method
to a known endpoint.
## Server discovery ## Server discovery
### Resolving server names ### Resolving server names