Repository navigation
Closed
Labels
Description
Summary
- Scan window: items updated on or after 2026-08-21 in
github/gh-aw-firewall. - Items reviewed: ~15 recently updated issues/PRs (list_issues + list_pull_requests, sorted by
updated), plus targetedsearch_issuesqueries for ARC/DinD/self-hosted/GHES/GHEC/chroot/musl/proxy/toolcache keywords. - New lessons found: 1 (network-isolation-mode artifact download failure). Everything else updated in-window ([awf] sandbox: filesystem.allowWrite not enforced by AWF, only grants engine tool permissions #7616/Enforce filesystem allowWrite boundaries in AWF sandboxes #7634 filesystem.allowWrite enforcement, Repair container workdir ownership on native-root runners and fail loudly when unwritable #7599/Repair gh-aw config ownership for native-root runners #7565 native-root ownership repair, Cloud Hypervisor readiness/probe fixes, sbx/gVisor doc sync, model-mapping/BYOK work) is either already captured (B24/B25 cite Natively-root runners get a silent uid-1000 fallback, leaving the agent unable to read its own MCP config (EACCES) #7564/Repair gh-aw config ownership for native-root runners #7565/Follow-up to #7565: $GITHUB_WORKSPACE ownership is not repaired on native-root runners, so the agent cannot write to the checkout #7593/Repair container workdir ownership on native-root runners and fail loudly when unwritable #7599) or is not a non-hosted-runner-environment lesson (filesystem sandboxing, Cloud Hypervisor guest networking, model API mapping — these are cross-cutting or GitHub-hosted-agnostic, not ARC/DinD/self-hosted/GHES/GHEC specific).
Proposed knowledge-base changes
File: .github/workflows/shared/self-hosted-failure-modes.md
Add new row B26 to the "Category B — Self-hosted runners" table (append after B25):
| B26 | In `--network-isolation` mode, `gh api .../actions/artifacts/{id}/zip` or `gh run download` fails inside the agent sandbox with `error connecting to productionresultssa*.blob.core.windows.net`; download fails in ~350ms | Two independent, non-interacting changes: (1) `gh-aw-mcpg` PR #10350 stopped auto-following the GitHub 302 redirect for artifact ZIP requests, so the `gh` CLI (running inside cli-proxy) must follow the `Location` header itself; (2) `cli-proxy` is intentionally isolated to `awf-net` only (no `awf-ext` egress, per github/gh-aw-firewall#7066) so it has no route to `productionresultssa*.blob.core.windows.net`. Since mcpg now expects the client to follow the redirect but cli-proxy cannot reach the blob storage target directly, every ZIP download fails. | **Fixed in AWF (PR github/gh-aw-firewall#7635, merged 2026-08-22):** cli-proxy's HTTP(S) traffic is now routed through Squid; cli-proxy remains isolated from `awf-ext`; Squid ACL scopes `*.blob.core.windows.net` access to requests originating from cli-proxy's fixed IP only (`http_access allow from_cli_proxy cli_proxy_artifact_storage`), preserving blocklist precedence and SSL Bump behavior. Azure Blob storage is *not* added to the agent's general domain allowlist. Upgrade AWF to include github/gh-aw-firewall#7635. | Reproduce with `gh run download <id>` or `gh api .../actions/artifacts/{id}/zip` inside a `--network-isolation` agent sandbox; on unpatched AWF this fails within ~350ms with a blob-storage connection error; on patched AWF inspect Squid `access.log` for an ACL entry scoping `*.blob.core.windows.net` to the cli-proxy source IP | github/gh-aw#54371, github/gh-aw-firewall#7615, github/gh-aw-firewall#7635 |
Add matching entry to the "Error-string quick lookup" table:
| `error connecting to productionresultssa*.blob.core.windows.net` from `gh run download`/artifact ZIP fetch in `--network-isolation` mode | B26 (mcpg stopped auto-following the artifact redirect; cli-proxy had no route to Azure blob storage; fixed in github/gh-aw-firewall#7635 with scoped Squid ACL keyed to cli-proxy's fixed IP) |
Proposed doctor changes
File: .github/workflows/self-hosted-runner-doctor.md
- No structural playbook changes needed; the doctor already directs to the shared catalog. If it maintains its own condensed quick-lookup table, add the same one-line entry as above.
Proposed portable agent changes
File: .github/agents/self-hosted-runner-doctor.md
Apply the identical B26 row to its embedded catalog table under Category B (immediately after its embedded B25 row), and the identical error-string lookup entry, so the portable agent stays in sync with shared/self-hosted-failure-modes.md.
Source issues and PRs
- [awf] cli-proxy: artifact ZIP downloads fail (no redirect egress to Azure blob storage) #7615 (root-cause report)
- Route CLI artifact redirects through scoped Squid egress #7635 (fix, merged 2026-08-22)
- Upstream reference: Artifact ZIP downloads always fail under sandbox: agent: awf with restricted network.allowed (cli-proxy egress vs. mcpg redirect passthrough) gh-aw#54371
Generated by Runner Doctor Updater · auto · 62.5 AIC · ⊞ 44.7K · ◷
- expires on Sep 22, 2026, 4:38 PM UTC
Reacted by Copilot
Activity