Problem
From v0.27.43+ (observed on v0.27.44), in network-isolation/topology mode with the CLI proxy connecting to an external DIFC proxy on the runner host, the awf-cli-proxy container never becomes healthy: its tcp-tunnel gets ENETUNREACH dialing the host gateway, the DIFC liveness probe exhausts its retries, and the workflow fails fast — the agent is never invoked.
The same workflow on the same runner pool works on v0.27.26 (pre-rework).
Key data point for #6704: this is a GitHub-hosted ubuntu-latest runner with no Tailscale — so the route-capture mechanism validated there cannot be the cause of this variant. The isolation-mode container→host path appears broken on a stock runner.
Evidence (v0.27.44, GitHub-hosted ubuntu-latest)
[INFO] CLI proxy enabled: connecting to external DIFC proxy at host.docker.internal:18443
[WARN] Host access enabled with host.docker.internal in allowed domains
[WARN] Network-isolation: removing 1 non-portable DNS server(s) that may become unreachable
from Docker bridge containers when host routing is modified by tools like Tailscale: 168.63.129.16
[WARN] Network-isolation: no portable DNS servers remain after filtering; falling back to 8.8.8.8, 8.8.4.4.
Container awf-cli-proxy Error
dependency failed to start: container awf-cli-proxy is unhealthy
[cli-proxy] DIFC proxy probe failed (attempt 1/10, diagnosis=unknown), retrying in 1s...
...
[cli-proxy] DIFC proxy probe failed (attempt 6/10, diagnosis=unknown), retrying in 30s...
[tcp-tunnel] Upstream error (::1:39718): connect ENETUNREACH 172.17.0.1:18443 - Local (0.0.0.0:0)
[ERROR] Fatal error: Error: AWF firewall failed to start: awf-cli-proxy could not connect to the
external DIFC proxy (or exited before establishing a connection). Failing fast to avoid
repeated in-agent retries. The agent was never invoked.
Note the third line: "Host access enabled with host.docker.internal in allowed domains" is logged, yet the tunnel still cannot reach the host — the upstream dial goes to 172.17.0.1 (the default bridge gateway), which is not reachable from the isolated topology-mode network. This suggests the #6657 host-access-with-isolation plumbing does not cover the cli-proxy → external-DIFC path: host.docker.internal resolves to the default bridge's gateway rather than the gateway of the network the cli-proxy actually sits on.
Version matrix (same workflow, same runner pool)
| firewall |
outcome |
| v0.27.26 |
✅ cli-proxy healthy, agent runs, reviews post |
| v0.27.44 |
❌ awf-cli-proxy is unhealthy, ENETUNREACH 172.17.0.1:18443, agent never starts |
Environment
- Compiler: gh-aw v0.79.8 (
sandbox.agent.version override selects the firewall version), Copilot engine 1.0.60
- Runner: GitHub-hosted
ubuntu-latest (Azure DNS 168.63.129.16 auto-detected); no Tailscale, no custom host routing
- CLI proxy in external-DIFC mode (
host.docker.internal:18443)
- Trigger:
slash_command workflow (issue_comment), permissions: contents: read, pull-requests: read
- Runs are in a private repository; happy to share full logs/
awf-resolved-config.json with maintainers.
Ask
Either resolve host.docker.internal to the gateway of the isolation-mode network the cli-proxy is attached to (or add an explicit host route/alias for it), or extend the #6657 host-access plumbing to the cli-proxy sidecar. If there is a supported flag combination that restores container→host access for the external DIFC proxy under topology mode, a Runner Doctor entry for this failure signature would also help — the current message gives no hint that the firewall version is the variable.
Problem
From v0.27.43+ (observed on v0.27.44), in network-isolation/topology mode with the CLI proxy connecting to an external DIFC proxy on the runner host, the
awf-cli-proxycontainer never becomes healthy: its tcp-tunnel getsENETUNREACHdialing the host gateway, the DIFC liveness probe exhausts its retries, and the workflow fails fast — the agent is never invoked.The same workflow on the same runner pool works on v0.27.26 (pre-rework).
Key data point for #6704: this is a GitHub-hosted
ubuntu-latestrunner with no Tailscale — so the route-capture mechanism validated there cannot be the cause of this variant. The isolation-mode container→host path appears broken on a stock runner.Evidence (v0.27.44, GitHub-hosted ubuntu-latest)
Note the third line: "Host access enabled with host.docker.internal in allowed domains" is logged, yet the tunnel still cannot reach the host — the upstream dial goes to
172.17.0.1(the default bridge gateway), which is not reachable from the isolated topology-mode network. This suggests the #6657 host-access-with-isolation plumbing does not cover the cli-proxy → external-DIFC path:host.docker.internalresolves to the default bridge's gateway rather than the gateway of the network the cli-proxy actually sits on.Version matrix (same workflow, same runner pool)
awf-cli-proxy is unhealthy,ENETUNREACH 172.17.0.1:18443, agent never startsEnvironment
sandbox.agent.versionoverride selects the firewall version), Copilot engine 1.0.60ubuntu-latest(Azure DNS168.63.129.16auto-detected); no Tailscale, no custom host routinghost.docker.internal:18443)slash_commandworkflow (issue_comment),permissions: contents: read, pull-requests: readawf-resolved-config.jsonwith maintainers.Ask
Either resolve
host.docker.internalto the gateway of the isolation-mode network the cli-proxy is attached to (or add an explicit host route/alias for it), or extend the #6657 host-access plumbing to the cli-proxy sidecar. If there is a supported flag combination that restores container→host access for the external DIFC proxy under topology mode, a Runner Doctor entry for this failure signature would also help — the current message gives no hint that the firewall version is the variable.