Skip to content

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

Closed

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions