fix: fetch errors do not have responses #2564
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.
Provide a link to the affected event from your Sentry accountNot ApplicablePackage + Version
@sentry/browser
Version:
Description
fetch
breadcrumbs attempts to access a non-existentresponse
object.fetch
treats all responses as a success, regardless of the HTTP status code. Whenfetch
throws an error, it won't have a response.Details
To reproduce the error, you can use this small HTML file:
Explanation
The handlers for
fetch
do not add aresponse
object when an error occurs (correctly, as one does not exist in this case):sentry-javascript/packages/utils/src/instrument.ts
Lines 166 to 173 in 03d9ef0
However, in the code for adding the fetch breadcrumbs, there is an unconditional attempt to access the
response.status
property in the error case:sentry-javascript/packages/browser/src/integrations/breadcrumbs.ts
Lines 188 to 196 in 03d9ef0
Which leads to the error shown: