Fix NoMethodError when request Content-Type is blank. #48887
Merged
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.
Motivation / Background
This Pull Request has been created because since this change we started receiving a
NoMethodError
"undefined method `rstrip' for nil:NilClass" from line 166 ofactionpack/lib/action_dispatch/http/mime_type.rb
when a client makes a request with a blankContent-Type
header. I believe this client is not adhering to the spec, but prior to the commit they would raise anActionDispatch::Http::MimeNegotiation::InvalidType
error and receive a "406 Not Acceptable" response instead of a "500 Server Error" response.The
NoMethodError
s also clog our error tracking system, whereas we are able to ignore the more specific invalid mime type errors.Detail
This Pull Request changes the mime type lookup to use the safe nagivation operator on the call to
rstrip
to handle the case when a client makes a request with a blankContent-Type
header.Additional information
The following code snippet contains a working recreation of the issue with the current
main
branch.Checklist
Before submitting the PR make sure the following are checked:
[Fix #issue-number]