output_config parameter causes 44-92% failure rate on Vertex AI haiku sub-agent calls

Resolved 💬 3 comments Opened Mar 30, 2026 by mrich-farallon Closed Apr 3, 2026

Bug Report

Description

Claude Code sends an output_config parameter in requests to Vertex AI's streamRawPredict endpoint. Vertex AI rejects this with invalid_request_error: output_config: Extra inputs are not permitted (gRPC status code 3). This primarily affects internal haiku sub-agent calls (Explore, Plan, summarization, tool processing), causing massive failure rates and user-visible timeouts.

Environment

  • Claude Code versions affected: 2.1.81, 2.1.83, 2.1.86, 2.1.87 (confirmed)
  • Not affected: 2.0.77 (0% error rate — output_config likely introduced between 2.0.77 and 2.1.81)
  • Platform: Vertex AI (streamRawPredict endpoint)
  • GCP project region: global (multi-region)
  • OS: macOS + Windows (both affected)

Impact

| Model | Error Rate |
|---|---|
| Haiku (sub-agent) | 44–92% |
| Opus (primary) | 1.2% |
| Sonnet | 0.7% |

Haiku is disproportionately affected because Claude Code dispatches many internal haiku sub-agent calls. The high failure rate causes:

  • Repeated retries, increasing latency
  • User-visible timeouts and degraded experience
  • Wasted API quota on failed calls

Error details

Every failed request returns:

{
  "type": "error",
  "error": {
    "type": "invalid_request_error",
    "message": "output_config: Extra inputs are not permitted"
  }
}

Evidence from GCP audit logs

Sampled 100 haiku calls in a 1-hour window (2026-03-30 ~16:00 UTC):

| CLI Version | Success | Failure |
|---|---|---|
| 2.0.77 | 6 | 0 |
| 2.1.81 | 0 | 54 |
| 2.1.83 | 0 | 16 |
| 2.1.86 | 2 | 12 |
| 2.1.87 | 0 | 10 |

Larger sample (2000 calls earlier same day) showed 44% haiku error rate. This is not a rate limit issue — zero 429 errors found.

Root cause

The output_config parameter is included in the request body sent to Vertex AI's streamRawPredict endpoint, but this parameter is not supported by Vertex AI's Anthropic model serving. It appears to be a direct API parameter that isn't stripped when routing through Vertex.

Expected behavior

Claude Code should either:

  1. Not send output_config when using the Vertex AI backend, or
  2. Vertex AI should accept and handle the parameter

Steps to reproduce

  1. Configure Claude Code to use Vertex AI backend
  2. Start a session (triggers haiku sub-agent calls automatically)
  3. Query GCP audit logs for protoPayload.status.code=3 on aiplatform.googleapis.com

First observed

At least 2025-02-28 based on audit log analysis. Bug persists through latest version (2.1.87, 2026-03-30).

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗