Skip to content

🩺 Runner Doctor UpdateRunner Doctor: add B26 (network-isolation artifact ZIP download via blob storage egress, #7615/#7635) #7663

Description

@github-actions

Summary

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

Generated by Runner Doctor Updater · auto · 62.5 AIC · ⊞ 44.7K ·

  • expires on Sep 22, 2026, 4:38 PM UTC

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions