fix(openapi-react-query): propagate undefined errors from empty-body non-OK responses#2829
Conversation
…non-OK responses
When openapi-fetch returns { data: undefined, error: undefined, response }
for a non-OK response with an empty body (e.g. 4xx/5xx with Content-Length: 0),
the previous `if (error)` check treated the result as successful and swallowed
the failure. Fix by checking `error !== undefined || !response.ok` in queryFn,
useInfiniteQuery's queryFn, and mutationFn.
Closes openapi-ts#2070.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
🦋 Changeset detectedLatest commit: 193cb06 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
👷 Deploy request for openapi-ts pending review.Visit the deploys page to approve it
|
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Status update + root-cause of the failing
|
Closes #2070.
What changed and why
queryFn,useInfiniteQuery'squeryFn, andmutationFnto throw whenerror !== undefined || !response.okresponsein the two places it was missing so the non-OK HTTP status is availableScenario fixed
When
openapi-fetchreturns{ data: undefined, error: undefined, response }for a non-OK response with an empty body (e.g. a 4xx/5xx response withContent-Length: 0), the previousif (error)check treated the result as successful and silently swallowed the failure. This PR propagates those errors correctly by also checkingresponse.ok.Test plan
pnpm testpasses inpackages/openapi-react-query(40 tests, all green)queryOptions,useMutation, anduseInfiniteQuery, asserting that empty-body 500 responses are correctly rejected/thrownNotes
This is a re-submission of #2822, which was closed because the branch was accidentally created as an orphan (not based on
main) causing 1.8M spurious additions. This PR is cleanly branched frommainwith only the intended 91-line diff (10 source lines + 81 test lines).