fix(openapi-fetch): handle empty error responses when Content-Length header is stripped #2605
+55
−4
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.
Summary
Fixes #2574
When a proxy (like Cloudflare) strips the
Content-Lengthheader from an error response with no body, the client would return an empty string as the error value. Since empty string is falsy, this causes issues when checkingif (error)- the code incorrectly treats it as "no error".Changes
This fix applies the same safe handling to error responses that already exists for success responses. When
Content-Lengthis absent and the body is empty:response.text()first to get the raw contentundefinedfor the error valueContent-Length: 0Testing
Added two new test cases in
delete.test.ts:All 442 tests pass including the new ones.
Reproduction