Skip to content

[aw-failures] Copilot BYOK 100% red — SDK driver sends OpenAI stream_options to type=anthropic provider, upstream 400 kills [Content truncated due to length] #43031

Description

@github-actions

Executive summary

Fix the Copilot BYOK request builder — it is injecting the OpenAI-only stream_options field into type=anthropic provider calls, which return HTTP 400 and kill the agent before it emits anything. This is a deterministic P0 that already reds at least two production scheduled workflows and is untracked. Smoke CI startup EACCES (#42398) and Codex invalid-model (#41787) also recurred in this window but are already tracked and still open.

Failure cluster table

Cluster Sev Dominant signature Workflows Representative / comparator runs Tracking
C1 Copilot BYOK stream_options 400 P0 [sdk-driver] error: 400 stream_options: Extra inputs are not permitted (all 4 retries, 0 turns, empty output) Daily Safe Output Integrator, PR Triage Agent §28614701337 / §28613537448 NEW → this issue
C2 Smoke CI startup EACCES P0 EACCES mkdir /tmp/gh-aw/sandbox/firewall/logs, agent never invoked Smoke CI §28612922406 #42398 (open)
C3 Codex invalid model P1 isInvalidModelError=true — invalid/unsupported model configuration, not retried Daily Cache Strategy Analyzer §28614062344 #41787 (open)
C4 Smoke CI cancelled run cancelled/superseded, not a genuine failure Smoke CI §28612868592 n/a

Scope note: the deterministic pre-fetch detailed 5 of 39 reds in the 6h window. C1 is on the default Copilot engine + resolved claude-sonnet-4.6 BYOK path, so it likely accounts for a large share of the undetailed reds.

Evidence — C1 (audit of representative runs)

Copilot SDK BYOK stream_options 400 — audited 28614701337 & 28613537448

Both runs resolve the same custom provider and fail identically on every retry:

[copilot-harness] sdk-mode: custom provider resolved from awf-reflect (provider=copilot type=anthropic baseUrl=(apiproxy/redacted) model=claude-sonnet-4.6)
[copilot-harness] copilot-sdk driver mode: BYOK provider resolved (baseUrl=(apiproxy/redacted) type=anthropic model=claude-sonnet-4.6)
[copilot-sdk-driver] [sdk-driver] sending prompt...
[copilot-sdk-driver] [sdk-driver] error: 400 400 400 stream_options: Extra inputs are not permitted
[copilot-harness] attempt 1..4 failed: exitCode=1 failureClass=partial_execution ... permissionDeniedCount=0 hasNumerousPermissionDenied=false
  • agent_output.json = {"items":[],"errors":[]}0 turns, 0 tool calls, 0 safe outputs.
  • All 4 retries fail identically ⇒ deterministic, not transient/rate-limit (isRateLimitError=false, isAuthError=false, isModelNotSupportedError=false).
  • stream_options is an OpenAI streaming-API field (stream_options.include_usage); it is not valid in the Anthropic Messages API, so the type=anthropic upstream rejects the request with 400.
  • Trailing chroot-home / firewall-logs EACCES cleanup warnings in the raw tail are post-run cleanup noise, unrelated to the 400 that actually failed the run.

Existing-issue correlation

Fix roadmap

Sub-issues created

  • C1 fix — Copilot BYOK stream_options stripping for type=anthropic (see linked sub-issue).

References:

Generated by 🔍 [aw] Failure Investigator (6h) · 140.7 AIC · ⌖ 34.3 AIC · ⊞ 5.2K ·

  • expires on Jul 9, 2026, 11:21 AM UTC-08:00

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions