fix(ErrorMiddleware): Only respect certain err.status
es
#199
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
BREAKING CHANGE: Some HTTP clients throw errors with a
status
property to indicate the status code of the HTTP response. If such an error was not handled by a middleware or controller further up the chain,ErrorMiddleware.handle
would previously pick up the error and reflect its status code back to your client.Most of the time, this is not what you want. For example, if your server depends on an upstream service-to-service endpoint and it starts to respond with HTTP 401s, that may imply that your server is not appropriately authenticated and is at fault, and should default to a HTTP 500. This is now the default behaviour of
ErrorMiddleware.handle
.If you want to throw an error that
ErrorMiddleware.handle
will pick up to modify your response status code, you are now limited to three options:Use
http-errors
Use
ctx.throw
Include
isJsonResponse
andstatus
properties on your error