Skip to content

fix(http): stop treating 200 bodies with status and data keys as proxy responses - #9889

Merged
waleedlatif1 merged 1 commit into
stagingfrom
fix/http-tool-status-data-body
Nov 11, 2026
Merged

waleedlatif1 merged 1 commit into
stagingfrom
fix/http-tool-status-data-body

Conversation

@waleedlatif1

Copy link
Copy Markdown
Collaborator

Summary

  • Fixes [BUG] http_request / webhook_request report a successful HTTP 200 as failed when the JSON body has top-level status and data keys #9838: http_request and webhook_request reported a 200 as failed when the JSON body had top-level status and data keys (JSend-style {"status":"success","data":{...}})
  • Root cause: transformResponse in both tools still sniffed the body for the envelope the old /api/proxy route returned ({success,status,data,headers}). That route was removed in improvement(files): update execution for passing base64 strings #2906, so the branch only ever matched third-party bodies, returning success: undefined, the body's status string instead of the HTTP code, and empty headers
  • Removed the branch from both tools; every response now goes through the normal path (success: response.ok, real status and headers). Non-2xx is still rejected earlier in executeTool
  • Behavior change: a 200 body shaped {success: true, status, data} was previously unwrapped (<api.data> was the inner data). It now returns the full body like every other response, so such references move to <api.data.data>

Type of Change

  • Bug fix

Testing

  • Added a regression test in tools/index.test.ts that runs both real tools through executeTool (the file's mocked registry stubs http_request, which is why existing tests missed this). Red on the pre-fix code, green after
  • bunx vitest run tools/index.test.ts tools/http executor/handlers/api (278 passed), biome, check:test-patterns, check:comment-hygiene; full gate in CI

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing (new tests pass the test-audit authoring gate)
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Nov 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
docs Skipped Skipped Nov 11, 2026 8:36pm UTC

Request Review

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 3 files

Confidence score: 5/5

  • Automated review surfaced no issues in the provided summaries.
  • No files require special attention.

Turn on auto-fix | Re-trigger cubic

@greptile-apps

greptile-apps Bot commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge.

Summary

Both HTTP tools now use the HTTP response to decide success and return its full body, status, and headers.

  • HTTP tools keep response bodies with status and data fields intact.

Reviews (1) · Last reviewed commit: "fix(http): stop treating 200 bodies with..." · Reviewed by Greptile

@waleedlatif1
waleedlatif1 merged commit d7f3158 into staging Nov 11, 2026
6 checks passed
@waleedlatif1
waleedlatif1 deleted the fix/http-tool-status-data-body branch November 11, 2026 20:44
waleedlatif1 added a commit that referenced this pull request Nov 11, 2026
…flows (#9909)

#9889 fixed JSend-style 200s ({status, data}) being reported as failures by
deleting the old /api/proxy envelope branch outright. That also changed two
behaviors existing workflows rely on: 200 bodies with success/status/data were
unwrapped (<api.data.x> read the inner data) and success: false failed the
block. Restore both through one shared toHttpToolResponse helper, gated on the
body carrying a success field — the only shape the old route ever produced —
so only the misclassified case changes. Non-string envelope errors are now
serialized instead of surfacing as [object Object].

This branch was previously deployed

1 inactive deployment
Preview — 60b2ddf0 Deployed Nov 11, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant