GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — fix(http): keep unwrapping legacy success envelopes for existing workflows by waleedlatif1 · Pull Request #9909 · simstudioai/sim

Conversation

@waleedlatif1

@waleedlatif1 waleedlatif1 commented Nov 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Follow-up to fix(http): stop treating 200 bodies with status and data keys as proxy responses #9889 (issue [BUG] http_request / webhook_request report a successful HTTP 200 as failed when the JSON body has top-level status and data keys #9838). Deleting the old /api/proxy envelope branch fixed JSend-style 200s, but it also changed two behaviors existing API/Webhook blocks have had since that route was removed:
    • a 200 body with success, status, and data was unwrapped, so <api.data.x> read the inner data
    • a 200 body with success: false failed the block with the body's error, so error branches ran
  • Restores both through one shared toHttpToolResponse helper in tools/http/utils.ts, gated on the body carrying a success field — the only shape the old route ever produced (success: response.ok). A body without it (JSend {status, data}) stays an ordinary response, which is the [BUG] http_request / webhook_request report a successful HTTP 200 as failed when the JSON body has top-level status and data keys #9838 fix
  • Net effect vs. before fix(http): stop treating 200 bodies with status and data keys as proxy responses #9889: only bodies with no success field change. Non-string envelope errors are now JSON-serialized instead of reaching the caller as an object ([object Object] in the API block)
  • Both tools share the helper, which also drops their duplicated header-copy loops

Type of Change

  • Bug fix

Testing

  • tools/index.test.ts: both real tools through executeTool for JSend, success: true unwrap, and success: false with string and object errors. Red on fix(http): stop treating 200 bodies with status and data keys as proxy responses #9889 as merged (6 compat cases), red on pre-fix(http): stop treating 200 bodies with status and data keys as proxy responses #9889 code only for the JSend case and the object-error serialization, green with this change
  • bunx vitest run tools/index.test.ts tools/http executor/handlers/api (284 passed), biome, check:utils, 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)

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

greptile-apps[bot] reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@waleedlatif1
fix(http): keep unwrapping legacy success envelopes for existing work…
2d87d91
…flows

#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].
@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 10:42pm UTC

Request Review

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@greptile-apps

greptile-apps Bot commented Nov 11, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge.

Summary

Restores legacy response unwrapping for HTTP and webhook calls while keeping JSend-style bodies intact.

  • HTTP and webhook calls keep reading legacy success envelopes as before.

waleedlatif1 explicitly describes replacing HTTP fields with legacy envelope fields as intentional compatibility behavior.

Reviews (1) · Last reviewed commit: "fix(http): keep unwrapping legacy succes..." · Reviewed by Greptile

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

cubic-dev-ai[bot]
cubic-dev-ai Bot reviewed Nov 11, 2026
View reviewed changes

@cubic-dev-ai cubic-dev-ai Bot left a comment •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

There was a problem hiding this comment.

Choose a reason for hiding this comment

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

1 issue found across 5 files

Confidence score: 3/5

  • apps/sim/tools/http/utils.ts can treat a legacy response with success: "false" as a successful tool call. Require body.success to be a boolean before unwrapping the envelope.
Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="apps/sim/tools/http/utils.ts">

<violation number="1" location="apps/sim/tools/http/utils.ts:172">
P2: The legacy-envelope check accepts non-boolean success values, so a response containing `success: "false"` is reported as a successful tool call. Require `body.success` to be a boolean before unwrapping the envelope.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Turn on auto-fix | Re-trigger cubic

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Comment thread apps/sim/tools/http/utils.ts Resolved

Uh oh!

There was an error while loading. Please reload this page.

@waleedlatif1
waleedlatif1 merged commit b680ad4 into staging Nov 11, 2026
80 checks passed

Uh oh!

There was an error while loading. Please reload this page.

@waleedlatif1
waleedlatif1 deleted the fix/http-legacy-envelope-compat branch November 11, 2026 23:24
@waleedlatif1 waleedlatif1 mentioned this pull request Nov 12, 2026
v0.9.54: non-OAuth auth for twelve more integrations, agent API additions (workflow outline, schedules list, paused runs, scoped CLI pairing keys), concurrent-edit guard, dependency updates #9912
Merged

This branch was previously deployed

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

Reviewers

@cubic-dev-ai cubic-dev-ai[bot] cubic-dev-ai[bot] left review comments

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@waleedlatif1
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.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.