Problem
Fix the AWF API-proxy guard in Contribution Check now — it's denying ordinary git fetch / safeoutputs create_issue shell commands as "Permission denied and could not request permission from user," and the copilot-harness classifies this as a non-retryable guard condition, so it gives up on attempt 1 of 4 instead of retrying. One-sentence reason: legitimate, workflow-critical commands (fetching a PR branch, filing the run's own summary issue) are being blocked at the sandbox/firewall layer, and the harness's "don't retry" heuristic turns one proxy block into a hard failure.
Affected workflows and runs
- Contribution Check (§31315109276, 2026-08-09T13:10Z) —
agent job failed, failureClass=permission_denied, permissionDeniedCount=19, hasNumerousPermissionDenied=true. Harness log: [copilot-harness] attempt 1: AWF API proxy is blocking requests — not retrying (non-retryable guard condition).
Probable root cause
The agent's own transcript shows the denied commands were routine and workflow-critical, not sandbox-escape attempts:
✗ Fetch PR branch and get diff against main (shell)
│ git fetch origin pull/51582/head:pr-51582 2>&1 && git diff main...pr-51582 2>&1
└ Permission denied and could not request permission from user
✗ Create report issue (shell)
│ jq -Rs --arg title "Contribution Check — $(date -u +%Y-%m-%d)" '{title: $title, temporary_id: "aw_summary", body: .}' /tmp/gh-aw/agent/report.md | safeoutputs create_issue .
└ Permission denied and could not request permission from user
19 such denials accumulated while the agent evaluated 3 PRs. It worked around most of them (all 3 PR review comments still posted successfully), but both attempts to file the workflow's own summary issue via safeoutputs create_issue were denied, so the run ended with ##[error]1 safe output(s) failed and no summary issue. The harness then declared the AWF API-proxy block non-retryable and exited after attempt 1, using none of its 3 remaining retries.
Proposed remediation
- Confirm whether the AWF sandbox/firewall config for Contribution Check's job allows the commands it actually needs (
git fetch origin pull/*/head:*, safeoutputs create_issue) — this looks like an allowlist gap, not intentional denial, since the same job's other shell work and all 3 PR comments succeeded.
- If the block is intentional (e.g. proxy-side rate limiting), make the harness treat it as retryable — one proxy hiccup shouldn't burn the run down to 0 retries used.
- At minimum, don't let a denied
safeoutputs create_issue call silently drop the run's summary report — retry that specific call once the rest of the run's real work has already succeeded.
Success criteria
- Next 5 Contribution Check runs: zero
permission_denied entries for git fetch and safeoutputs create_issue calls.
- If a transient proxy block recurs, the harness uses at least one retry (
retriesRemaining decreases from 3) before giving up.
Related to #51545
Related to #51545
Generated by 🔍 [aw] Failure Investigator (6h) · agent · 244.3 AIC · ⌖ 42.9 AIC · ⊞ 5.3K · ◷
Problem
Fix the AWF API-proxy guard in Contribution Check now — it's denying ordinary
git fetch/safeoutputs create_issueshell commands as "Permission denied and could not request permission from user," and the copilot-harness classifies this as a non-retryable guard condition, so it gives up on attempt 1 of 4 instead of retrying. One-sentence reason: legitimate, workflow-critical commands (fetching a PR branch, filing the run's own summary issue) are being blocked at the sandbox/firewall layer, and the harness's "don't retry" heuristic turns one proxy block into a hard failure.Affected workflows and runs
agentjob failed,failureClass=permission_denied,permissionDeniedCount=19,hasNumerousPermissionDenied=true. Harness log:[copilot-harness] attempt 1: AWF API proxy is blocking requests — not retrying (non-retryable guard condition).Probable root cause
The agent's own transcript shows the denied commands were routine and workflow-critical, not sandbox-escape attempts:
19 such denials accumulated while the agent evaluated 3 PRs. It worked around most of them (all 3 PR review comments still posted successfully), but both attempts to file the workflow's own summary issue via
safeoutputs create_issuewere denied, so the run ended with##[error]1 safe output(s) failedand no summary issue. The harness then declared the AWF API-proxy block non-retryable and exited after attempt 1, using none of its 3 remaining retries.Proposed remediation
git fetch origin pull/*/head:*,safeoutputs create_issue) — this looks like an allowlist gap, not intentional denial, since the same job's other shell work and all 3 PR comments succeeded.safeoutputs create_issuecall silently drop the run's summary report — retry that specific call once the rest of the run's real work has already succeeded.Success criteria
permission_deniedentries forgit fetchandsafeoutputs create_issuecalls.retriesRemainingdecreases from 3) before giving up.Related to #51545
Related to #51545