Skip to content

OpenCode Go: kimi-k3, kimi-k2.6, kimi-k2.7-code, glm-5.2, grok-4.5, qwen3.7-max, hy3-preview all fail with 'Upstream request failed' — non-standard 'mcp'/'system' fields rejected by strict provider validators #37771

Description

@DnaMes

Summary

7 of the newest OpenCode Go (zen/go/v1) models fail on every call with a generic Error from provider (Console Go): Upstream request failed, wrapped from an underlying HTTP 400. Confirmed via direct capture of the CLI's real outbound request (bypassing opencode's swallowed error), the upstream provider returns:

"Error from provider: 2 request validation errors: Extra inputs are not permitted, field: 'mcp', value: [...]; Extra inputs are not permitted, field: 'system', value: '...'"

Affected models (confirmed via opencode-go)

  • kimi-k3
  • kimi-k2.6
  • kimi-k2.7-code
  • glm-5.2
  • grok-4.5
  • qwen3.7-max
  • hy3-preview

Working models on the same provider (glm-5.1, mimo-v2.5/-pro, minimax-m2.7/m3, qwen3.6-plus/3.7-plus, deepseek-v4-pro/flash) are unaffected — their backing providers apparently tolerate unknown top-level fields; the affected models' backends (Moonshot/Fireworks-routed Kimi, and presumably similar strict validators for the others) reject the request outright per Pydantic-style strict schema validation.

Root cause

opencode's request body to zen/go/v1/chat/completions includes two non-standard top-level fields not part of the OpenAI Chat Completions spec:

  • "mcp": ["context7","savecontext","serena",...] — array of active MCP provider names
  • "system": "<full system prompt string>" (in addition to / instead of a messages[].role=system entry)

These are presumably intended as opencode-internal metadata or a legacy field format, but get forwarded verbatim to the upstream Console Go endpoint instead of being stripped for providers with strict input validation.

Reproduction

  1. opencode run -m opencode-go/kimi-k2.6 "hello" (or any of the affected models above)
  2. Fails instantly (~1.2s) with Error from provider (Console Go): Upstream request failed
  3. Direct curl replay of the exact captured request body against https://opencode.ai/zen/go/v1/chat/completions reproduces the 400 with the full validation error shown above.
  4. Removing the mcp and system fields from the payload (keeping messages with a system-role entry instead) is expected to fix it — not yet tested with fields fully removed, but the validator error names them explicitly as the two rejected fields.

Version

opencode 1.18.3 (bun 1.3.14), installed via brew

Related

Multiple users independently hit this in the last 1-2 days on Reddit (r/opencodeCLI, r/opencode) and X, all reporting Kimi K3 "unusable" on Go subscriptions with the identical error string.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions