Uh oh!
There was an error while loading. Please reload this page.
Add Claude Code CLI startup auth hosts to the default network allowlist#54489
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
pelikhan
commented
Aug 21, 2026
@copilot Claude domain set should not have a playwright domains. Keep it minimal. |
There was a problem hiding this comment.
Pull request overview
Adds Claude Code’s required startup authentication hosts to the engine’s default network allowlist, addressing the zero-token startup failures reported in #54462.
Changes:
- Adds
claude.aiandplatform.claude.com. - Extends regression coverage and adds a patch changeset.
- Regenerates 60 Claude workflow lockfiles.
Validation: Unit, security, build, and YAML checks pass; lint-go fails on the pre-existing error message at pkg/workflow/domains.go:27.
Show a summary per file
| File | Description |
|---|---|
.changeset/claude-default-domains-auth-hosts.md | Documents the patch. |
pkg/workflow/domains.go | Adds startup hosts. |
pkg/workflow/domains_test.go | Tests both hosts. |
.github/workflows/agent-job-health.lock.yml | Regenerates allowlist. |
.github/workflows/api-consumption-report.lock.yml | Regenerates allowlist. |
.github/workflows/approach-validator.lock.yml | Regenerates allowlist. |
.github/workflows/archivx-agentic-workflows-analyzer.lock.yml | Regenerates allowlist. |
.github/workflows/audit-workflows.lock.yml | Regenerates allowlist. |
.github/workflows/avenger.lock.yml | Regenerates allowlist. |
.github/workflows/aw-failure-investigator.lock.yml | Regenerates allowlist. |
.github/workflows/blog-auditor.lock.yml | Regenerates allowlist. |
.github/workflows/ci-doctor.lock.yml | Regenerates allowlist. |
.github/workflows/claude-code-user-docs-review.lock.yml | Regenerates allowlist. |
.github/workflows/cli-version-checker.lock.yml | Regenerates allowlist. |
.github/workflows/cloclo.lock.yml | Regenerates allowlist. |
.github/workflows/copilot-agent-analysis.lock.yml | Regenerates allowlist. |
.github/workflows/copilot-session-insights.lock.yml | Regenerates allowlist. |
.github/workflows/daily-agentrx-trace-optimizer.lock.yml | Regenerates allowlist. |
.github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml | Regenerates allowlist. |
.github/workflows/daily-aw-cross-repo-compile-check.lock.yml | Regenerates allowlist. |
.github/workflows/daily-caveman-optimizer.lock.yml | Regenerates allowlist. |
.github/workflows/daily-choice-test.lock.yml | Regenerates allowlist. |
.github/workflows/daily-doc-healer.lock.yml | Regenerates allowlist. |
.github/workflows/daily-elixir-credo-snippet-audit.lock.yml | Regenerates allowlist. |
.github/workflows/daily-rendering-scripts-verifier.lock.yml | Regenerates allowlist. |
.github/workflows/daily-safe-output-optimizer.lock.yml | Regenerates allowlist. |
.github/workflows/daily-safe-outputs-conformance.lock.yml | Regenerates allowlist. |
.github/workflows/daily-safeoutputs-git-simulator.lock.yml | Regenerates allowlist. |
.github/workflows/daily-vulnhunter-scan.lock.yml | Regenerates allowlist. |
.github/workflows/daily-yamllint-fixer.lock.yml | Regenerates allowlist. |
.github/workflows/deep-report.lock.yml | Regenerates allowlist. |
.github/workflows/deepsec-security-scan.lock.yml | Regenerates allowlist. |
.github/workflows/design-decision-gate.lock.yml | Regenerates allowlist. |
.github/workflows/detection-analysis-report.lock.yml | Regenerates allowlist. |
.github/workflows/developer-docs-consolidator.lock.yml | Regenerates allowlist. |
.github/workflows/eslint-refiner.lock.yml | Regenerates allowlist. |
.github/workflows/example-workflow-analyzer.lock.yml | Regenerates allowlist. |
.github/workflows/github-mcp-structural-analysis.lock.yml | Regenerates allowlist. |
.github/workflows/github-mcp-tools-report.lock.yml | Regenerates allowlist. |
.github/workflows/go-fan.lock.yml | Regenerates allowlist. |
.github/workflows/go-logger.lock.yml | Regenerates allowlist. |
.github/workflows/go-pattern-detector.lock.yml | Regenerates allowlist. |
.github/workflows/hourly-ci-cleaner.lock.yml | Regenerates allowlist. |
.github/workflows/instructions-janitor.lock.yml | Regenerates allowlist. |
.github/workflows/lockfile-stats.lock.yml | Regenerates allowlist. |
.github/workflows/portfolio-analyst.lock.yml | Regenerates allowlist. |
.github/workflows/prompt-clustering-analysis.lock.yml | Regenerates allowlist. |
.github/workflows/ruflo-backed-task.lock.yml | Regenerates allowlist. |
.github/workflows/safe-output-health.lock.yml | Regenerates allowlist. |
.github/workflows/scout.lock.yml | Regenerates allowlist. |
.github/workflows/semantic-function-refactor.lock.yml | Regenerates allowlist. |
.github/workflows/sergo.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-agent-all-merged.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-agent-all-none.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-agent-public-approved.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-agent-public-none.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-agent-scoped-approved.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-claude.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-claude-on-copilot.lock.yml | Regenerates allowlist. |
.github/workflows/smoke-github-claude.lock.yml | Regenerates allowlist. |
.github/workflows/static-analysis-report.lock.yml | Regenerates allowlist. |
.github/workflows/step-name-alignment.lock.yml | Regenerates allowlist. |
.github/workflows/typist.lock.yml | Regenerates allowlist. |
Review details
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 23/63 changed files
- Comments generated: 0
- Review effort level: Balanced
✅ Design Decision Gate 🏗️ completed the design decision gate check. No ADR enforcement needed: PR #54489 does not have the 'implementation' label and has 0 new lines of code in business logic directories (threshold: 100).
|
✅ PR Code Quality Reviewer completed the code quality review.
|
🧠 Matt Pocock Skills Reviewer has completed the skills-based review. ✅
|
✅ Ponytail Reviewer completed successfully! Reviewed PR #54489 for over-engineering per ponytail-review skill. Changes are minimal and appropriate: two domain string additions to ClaudeDefaultDomains with brief inline comments explaining why, matching test coverage, plus a changeset and generated lock.yml. No speculative abstractions, reinvented code, or unneeded flexibility found. Lean already. Ship.
|
✅ Test Quality Sentinel completed test quality analysis. Test Quality Sentinel skipped because pre-fetch PR data was unavailable: unable to fetch test file diff
|
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Removed |
Comment MemoryNote This comment is managed by comment memory.It stores persistent context for this thread in the code block at the top of this comment.
|
There was a problem hiding this comment.
No actionable issues found in the changed lines. The patch is narrowly scoped, the new Claude startup hosts are added consistently to the source list and regenerated lockfiles, and the regression test now guards both hosts explicitly.
🔎 Code quality review by PR Code Quality Reviewer · gpt54 · 7.84 AIC · ⌖ 6.74 AIC · ⊞ 7K
Comment /review to run again
There was a problem hiding this comment.
The change is minimal and correct: claude.ai and platform.claude.com are inserted in alphabetical order with clear, descriptive inline comments explaining why each host is needed. The test file is updated accordingly, and a changeset entry is included. No issues found.
🧵 Reviewed using Impeccable skills by Impeccable Skills Reviewer · sonnet46 · 22.1 AIC · ⌖ 11.6 AIC · ⊞ 5.7K
There was a problem hiding this comment.
Skills-Based Review 🧠
Applied /diagnosing-bugs — the root cause is correctly identified and addressed, and a regression test is included.
📋 Key Themes & Highlights
Positive Highlights
- ✅ Excellent diagnostic write-up: zero
token_usage+ missing telemetry hosts → CLI dying before model API →(unknown)blocked entry. Clear chain of evidence. - ✅ Root cause addressed (not just symptom): two missing startup hosts added directly to
ClaudeDefaultDomains. - ✅
TestClaudeDefaultDomainsasserts both new hosts, providing a regression anchor. - ✅ Inline comments in
domains.goexplain why each host is needed.
One Minor Observation
claude.ai is a bare domain entry. The firewall's subdomain matching policy will determine whether this also covers subdomains like app.claude.ai. If the CLI contacts subdomains not covered by this entry, a follow-up failure could occur that is harder to diagnose. Worth noting which specific endpoints under claude.ai were observed in the firewall log, if that data is available.
🧠 Reviewed using Matt Pocock's skills by Matt Pocock Skills Reviewer · sonnet46 · 20.7 AIC · ⌖ 9.86 AIC · ⊞ 7.8K
Comment /matt to run again
gh-aw-bot
commented
Aug 21, 2026
@copilot Quick triage nudge for PR #54489.
Run: https://github.com/github/gh-aw/actions/runs/32477751698
|
…ix-firewall-proxy-allowlist # Conflicts: # .github/workflows/api-consumption-report.lock.yml # .github/workflows/audit-workflows.lock.yml # .github/workflows/detection-analysis-report.lock.yml # .github/workflows/prompt-clustering-analysis.lock.yml Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Merged |
gh-aw-bot
commented
Aug 21, 2026
Run: https://github.com/github/gh-aw/actions/runs/32512483892
|
…ix-firewall-proxy-allowlist Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Resolved via |
PR Triage: category=bug · risk=medium · priority=high · score=73/100
|
gh-aw-bot
commented
Aug 21, 2026
Run: https://github.com/github/gh-aw/actions/runs/32515777962
|
…ix-firewall-proxy-allowlist Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Refreshed via |
pelikhan
commented
Aug 21, 2026
@copilot resolve the merge conflicts in this pull request |
…ix-firewall-proxy-allowlist # Conflicts: # .github/workflows/agent-job-health.lock.yml # .github/workflows/api-consumption-report.lock.yml # .github/workflows/approach-validator.lock.yml # .github/workflows/archivx-agentic-workflows-analyzer.lock.yml # .github/workflows/audit-workflows.lock.yml # .github/workflows/avenger.lock.yml # .github/workflows/aw-failure-investigator.lock.yml # .github/workflows/blog-auditor.lock.yml # .github/workflows/ci-doctor.lock.yml # .github/workflows/claude-code-user-docs-review.lock.yml # .github/workflows/cli-version-checker.lock.yml # .github/workflows/cloclo.lock.yml # .github/workflows/copilot-agent-analysis.lock.yml # .github/workflows/copilot-session-insights.lock.yml # .github/workflows/daily-agentrx-trace-optimizer.lock.yml # .github/workflows/daily-astrostylelite-markdown-spellcheck.lock.yml # .github/workflows/daily-aw-cross-repo-compile-check.lock.yml # .github/workflows/daily-caveman-optimizer.lock.yml # .github/workflows/daily-choice-test.lock.yml # .github/workflows/daily-doc-healer.lock.yml # .github/workflows/daily-elixir-credo-snippet-audit.lock.yml # .github/workflows/daily-rendering-scripts-verifier.lock.yml # .github/workflows/daily-safe-output-optimizer.lock.yml # .github/workflows/daily-safe-outputs-conformance.lock.yml # .github/workflows/daily-safeoutputs-git-simulator.lock.yml # .github/workflows/daily-vulnhunter-scan.lock.yml # .github/workflows/daily-yamllint-fixer.lock.yml # .github/workflows/deep-report.lock.yml # .github/workflows/deepsec-security-scan.lock.yml # .github/workflows/design-decision-gate.lock.yml # .github/workflows/detection-analysis-report.lock.yml # .github/workflows/developer-docs-consolidator.lock.yml # .github/workflows/eslint-refiner.lock.yml # .github/workflows/example-workflow-analyzer.lock.yml # .github/workflows/github-mcp-structural-analysis.lock.yml # .github/workflows/github-mcp-tools-report.lock.yml # .github/workflows/go-fan.lock.yml # .github/workflows/go-logger.lock.yml # .github/workflows/go-pattern-detector.lock.yml # .github/workflows/hourly-ci-cleaner.lock.yml # .github/workflows/instructions-janitor.lock.yml # .github/workflows/lockfile-stats.lock.yml # .github/workflows/portfolio-analyst.lock.yml # .github/workflows/prompt-clustering-analysis.lock.yml # .github/workflows/ruflo-backed-task.lock.yml # .github/workflows/safe-output-health.lock.yml # .github/workflows/scout.lock.yml # .github/workflows/semantic-function-refactor.lock.yml # .github/workflows/sergo.lock.yml # .github/workflows/smoke-agent-all-merged.lock.yml # .github/workflows/smoke-agent-all-none.lock.yml # .github/workflows/smoke-agent-public-approved.lock.yml # .github/workflows/smoke-agent-public-none.lock.yml # .github/workflows/smoke-agent-scoped-approved.lock.yml # .github/workflows/smoke-claude-on-copilot.lock.yml # .github/workflows/smoke-claude.lock.yml # .github/workflows/smoke-github-claude.lock.yml # .github/workflows/static-analysis-report.lock.yml # .github/workflows/step-name-alignment.lock.yml # .github/workflows/typist.lock.yml Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
gh-aw-bot
commented
Aug 21, 2026
Run: https://github.com/github/gh-aw/actions/runs/32527578560
|
Resolved in d268a7d — merged origin/main; conflicts were confined to generated |
Branch is already up to date with origin/main (merged in d268a7d, which was pushed after this notification was generated) — no conflicts currently exist. |
Two Claude Code CLI workflows crashed at startup with
ERR_CONFIG: no structured log entries were produced, zerotoken_usage, and noapi.anthropic.comtraffic in the firewall log at all. The zero attempted (not blocked) connections to the model API, plus Claude's telemetry hosts disappearing from the log in the same run, point at the CLI dying before it reached the model API — not at a regression on the Anthropic egress path itself.Root cause
Current Claude Code CLI versions contact two hosts during startup that
ClaudeDefaultDomainsdoes not cover:platform.claude.com— OAuth/authentication endpoint, which replacedconsole.anthropic.comclaude.ai— sign-in state and feature/config lookupsAWF's automatic subdomain matching on
anthropic.comdoes not extend toclaude.ai/claude.com, so these connections were dropped by iptables before Squid could name the destination — which is exactly the single(unknown)blocked entry observed in the failed run (seefilterActionableDomainsinpkg/cli/audit_report_analysis.go). The CLI exited before emitting a structured log entry, so the guardrail inlog_parser_bootstrap.cjsclassified it as a generic startup/config failure.The known hosts were verified as not regressed:
api.anthropic.com,anthropic.com,statsig.anthropic.com,sentry.ioare all still in the engine defaults, and the OTLP hosts come fromshared/otlp.md(*.sentry.io,*.grafana.net). The other candidates in the 08-19 → 08-21 window were also ruled out: #54055 dropped package registries only and left model/API transport domains untouched, and the AWFv0.28.2/v0.28.3bumps are version-only changes to an external component.Changes
pkg/workflow/domains.go— addclaude.aiandplatform.claude.comtoClaudeDefaultDomains, each annotated with the startup dependency it serves.pkg/workflow/domains_test.go—TestClaudeDefaultDomainsasserts both hosts are present..github/workflows/*.lock.yml— regenerated viamake recompile(60 Claude workflows); the AWF config for both affected workflows now carries the hosts..changeset/— patch changeset.Scope is deliberately limited to first-party Anthropic auth hosts rather than a broader
*.claude.comwildcard.Not covered here
Re-running the two workflows to confirm recovery (verification step 3 in the issue) requires triggering workflow runs, which this agent's token cannot do — that needs to happen after merge, checking for
token_usage > 0andapi.anthropic.comcall parity with the ~54-call baseline.pr-sous-chef run: https://github.com/github/gh-aw/actions/runs/32477751698> Generated by 👨🍳 PR Sous Chef · gpt54 · 16.4 AIC · ⌖ 8.3 AIC · ⊞ 6.9K · ◷