Fix the sub-agent model config: claude-haiku-4.5 is being routed through the Copilot Responses API, which rejects it — repoint sub-agents to a Responses-API-capable model (or force the sub-agent driver onto the chat/completions path). This has kept Smoke Copilot Sub Agents red every day for 8+ consecutive runs.
Parent: #46170
Problem statement
Every sub-agent spawned by Smoke Copilot Sub Agents dies with a deterministic CAPI 400. The Copilot SDK driver issues the sub-agent request against the Responses API, but the sub-agent model claude-haiku-4.5 is not served there:
[copilot-sdk-driver] [sdk-driver] error: Execution failed: CAPIError: 400 model claude-haiku-4.5 does not support Responses API.
{"type":"subagent.failed","data":{"agentName":"task","error":"No response generated"}}
Both the task (Task Agent) and general-purpose (General Purpose Agent) sub-agents fail identically. The harness classifies it failureClass=capi_error_400 isCAPIError400=true and retries, but all 4 attempts fail the same way (retriesRemaining=0), so the Execute GitHub Copilot CLI step exits 1 (##[error]Process completed with exit code 1). The parent agent reaches execution and makes Copilot API calls first — this is not the EACCES sandbox crash tracked in the parent — the sandbox is healthy; only sub-agent invocation is broken.
Affected workflows & run IDs
- Smoke Copilot Sub Agents (
.github/workflows/smoke-copilot-sub-agents.lock.yml)
- Representative failed run: §29608054426 (2026-07-17T19:34Z)
- No successful comparator exists — the workflow has failed on
main every day for 8 consecutive runs: 29528603365 (07-16), 29445163883 (07-15), 29362694619 (07-14), 29279434977 (07-13), 29206052899 (07-12), 29165520808 (07-11). Same deterministic signature.
Probable root cause
The sub-agent invocation path (Task / General Purpose agents) in the Copilot SDK driver is hardcoded/defaulting to claude-haiku-4.5 and to the Responses API endpoint. claude-haiku-4.5 is only available on the chat/completions path, so every sub-agent request 400s. Because this is a config/routing mismatch, not a transient fault, retries cannot recover it.
Proposed remediation
- Repoint the sub-agent model to a Responses-API-capable model, or route sub-agent requests for
claude-haiku-* through the chat/completions API instead of the Responses API.
- Add a compile/startup validation that rejects a (model, API-surface) pairing the proxy cannot serve — surface it as a config error before the run rather than as 4 wasted retries.
- Classify
capi_error_400 model-incompatibility as non-retriable (like isInvalidModelError) so it fails fast instead of burning 4 attempts.
Success criteria / verification
Generated by 🔍 [aw] Failure Investigator (6h) · 168.2 AIC · ⌖ 33.3 AIC · ⊞ 6.2K · ◷
Fix the sub-agent model config:
claude-haiku-4.5is being routed through the Copilot Responses API, which rejects it — repoint sub-agents to a Responses-API-capable model (or force the sub-agent driver onto the chat/completions path). This has kept Smoke Copilot Sub Agents red every day for 8+ consecutive runs.Parent: #46170
Problem statement
Every sub-agent spawned by Smoke Copilot Sub Agents dies with a deterministic CAPI 400. The Copilot SDK driver issues the sub-agent request against the Responses API, but the sub-agent model
claude-haiku-4.5is not served there:Both the
task(Task Agent) andgeneral-purpose(General Purpose Agent) sub-agents fail identically. The harness classifies itfailureClass=capi_error_400 isCAPIError400=trueand retries, but all 4 attempts fail the same way (retriesRemaining=0), so theExecute GitHub Copilot CLIstep exits 1 (##[error]Process completed with exit code 1). The parent agent reaches execution and makes Copilot API calls first — this is not the EACCES sandbox crash tracked in the parent — the sandbox is healthy; only sub-agent invocation is broken.Affected workflows & run IDs
.github/workflows/smoke-copilot-sub-agents.lock.yml)mainevery day for 8 consecutive runs: 29528603365 (07-16), 29445163883 (07-15), 29362694619 (07-14), 29279434977 (07-13), 29206052899 (07-12), 29165520808 (07-11). Same deterministic signature.Probable root cause
The sub-agent invocation path (Task / General Purpose agents) in the Copilot SDK driver is hardcoded/defaulting to
claude-haiku-4.5and to the Responses API endpoint.claude-haiku-4.5is only available on the chat/completions path, so every sub-agent request 400s. Because this is a config/routing mismatch, not a transient fault, retries cannot recover it.Proposed remediation
claude-haiku-*through the chat/completions API instead of the Responses API.capi_error_400model-incompatibility as non-retriable (likeisInvalidModelError) so it fails fast instead of burning 4 attempts.Success criteria / verification
taskandgeneral-purposesub-agents complete withoutCAPIError: 400 ... does not support Responses API.mainfor 2+ consecutive scheduled runs.subagent.failed/No response generatedevents in the agent log.Related to [aw-failures] P0: Smoke CI sandbox crash — EACCES writing chroot hosts file blocks all PR agent runs (last 6h) #46170