feat: improve error message when request has non UTF-8 characters in the body #559
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.
The problem with the JSON body validation was that when an invalid UTF-8 character was found in the request body, an exception was raised with a message that included the entire request body, including the non UTF-8 character. When the error handler then attempted to render the exception message in JSON, it then caused another error to be raised. This meant that instead of a 400 response, the user was receiving a 500 response.
This change detects the non UTF-8 character and returns a helpful error message indicating where the invalid character is. It also adds a spec to ensure that every request that accepts JSON calls the appropriate validation method in
malformed_request?
.