镜像站点 · 本页由第三方 GitHub 只读镜像提供,非 GitHub 官方站点,不接受任何登录或凭据输入。前往 github.com
Skip to content

FIX: Report ERROR when every TAP branch crashed before a score - #4159

Merged
Roman Lutz (romanlutz) merged 3 commits into
microsoft:mainfrom
u7k4rs6:fix/tap-all-nodes-errored
Nov 13, 2026
Merged

Roman Lutz (romanlutz) merged 3 commits into
microsoft:mainfrom
u7k4rs6:fix/tap-all-nodes-errored

Conversation

@u7k4rs6

@u7k4rs6 Utkarsh Bahuguna (u7k4rs6) commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

When every TAP or PAIR branch hit an exception, the node errors were only stored on the pruned nodes, so the attack returned FAILURE with a 0.00 best score and looked exactly like a target that refused everything.
Now TAP keeps the node errors on its context, and when nothing was ever scored and at least one branch errored, it returns ERROR with the error count and the last error as the reason and sets error_message on the result. PAIR gets the same through TAP.

Runs where any branch was scored, including a scored depth followed by a depth where everything crashed, still return FAILURE, and so do runs where every branch was off-topic.
The two tests that asserted FAILURE for the all-crashed case now expect ERROR, and there are new scenario cases for the off-topic and crash-after-score paths. The changed tests fail on main and pass here.

Fixes #4154

Copilot AI balanced review requested due to automatic review settings November 10, 2026 15:50

Copilot AI 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.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@u7k4rs6

Copy link
Copy Markdown
Contributor Author

Mohammed Abumtary (@Mohammed-AB) please don't post AI-generated validation dumps on other people's PRs. Nobody asked for it, it only repeats what the PR description and its tests already cover, and it adds noise for the maintainers who have to review this. If you find an actual problem with the change, leave a short comment pointing at it.

- Set error_type on the all-branches-crashed ERROR result from the stored
  "<kind>: <detail>" node error string, so AttackErrorSummary no longer
  shows None for these results.
- Clarify the outcome reason ("N branches failed to execute") and pluralize.
- Update _create_failure_result_async's docstring summary to cover the
  ERROR and UNDETERMINED outcomes it can return.
- Loosen the exact-string outcome_reason assertion and use a realistic
  node error message; assert the derived error_type.
- Add PAIR-level tests pinning ERROR propagation (and FAILURE when no
  branch errored), since PAIR inherits the fix from TAP.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@romanlutz
Roman Lutz (romanlutz) added this pull request to the merge queue Nov 13, 2026
Merged via the queue into microsoft:main with commit dd3f593 Nov 13, 2026
61 of 62 checks passed
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.

BUG: TAP and PAIR report FAILURE when every branch crashed before getting a score

3 participants