fix: http action error attribution by splitting request deadlines - #758
Open
justinkaseman wants to merge 1 commit into
Open
fix: http action error attribution by splitting request deadlines#758justinkaseman wants to merge 1 commit into
justinkaseman wants to merge 1 commit into
Conversation
product-security-plaid-production
Bot
requested review from
Krish-vemula and
ilija42
September 10, 2026 18:12
Contributor
|
👋 justinkaseman, thanks for creating this pull request! To help reviewers, please consider creating future PRs as drafts first. This allows you to self-review and make any final changes before notifying the team. Once you're ready, you can mark it as "Ready for review" to request feedback. Thanks! |
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.




Endpoint timeouts were reported as platform execution errors, firing
"[HTTP Action] Execution Errors in More than F nodes" on a user error.
Two causes:
The node derived a single deadline from
input.Timeoutand started itbefore marshal, DON resolution, awaitConnection and SendToGateway.
The gateway derives the same timeout starting on receipt, so the node
always expired first. The gateway's correctly classified response
arrived after responses.cleanup() had run and was dropped, so
IncrementExternalEndpointError never fired.
The
ctx.Done()branch returned NewUserError but calledIncrementExecutionTimeout, which also bumped executionError (Gabriel's fix fix: Execution Errors in More than F nodes not alerting on user errors #755). A
timeout had nowhere else to land.
Changes:
Split the deadline.
sendCtxkeepsinput.Timeoutand bounds onlydelivery to a gateway.
waitCtxis created after the send withinput.Timeout+ResponseGraceMs(default 5s, mirroring the gateway'sown send-response budget), so the gateway always reaches its timeout
first and its classified response wins.
Split the
ctx.Done()branch three ways:TimeoutError(gateway silent,system/DeadlineExceeded, counts as an execution error because it now
genuinely is one),
CanceledError(caller cancelled, system/Canceled,new http_action_request_canceled_count, not an execution error), and
the existing classified-response paths, unchanged.