You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
go: /v1/chat/completions returns 400 for reasoning_effort=max|minimal on mimo-v2.6-flash (low/medium/high succeed) #50818
POST https://opencode.ai/zen/go/v1/chat/completions rejects reasoning_effort=max (and minimal) for mimo-v2.6-flash with HTTP 400, while low, medium and high all succeed. The gateway surfaces the failure as:
The Upstream request failed: [400] wrapper suggests the gateway forwards the effort value to its upstream unchanged and the upstream rejects the enum value.
This matters because Xiaomi's official channel does support a max thinking level for mimo-v2.6-flash (their Anthropic-style endpoint accepts it), so clients that expose a max level for this model work against the official endpoint but break whenever the request is routed through zen/go.
Evidence this is model/upstream-specific, not gateway-wide
On the same gateway with the same session header: deepseek-v4.1-flash with reasoning: {"effort": "max"} via POST /v1/responses returns 200 — the gateway clearly supports max for models whose upstream accepts it.
Xiaomi's official endpoint accepts a max thinking level for the very same model (mimo-v2.6-flash).
So for mimo on zen/go, the accepted effort set is effectively {low, medium, high} (plus on/off), and anything else becomes a raw upstream 400.
Suggested fix
Clamp effort values the upstream does not accept to the nearest supported one (max → high, minimal → low) instead of surfacing a raw upstream 400 to the client; and/or
Advertise the supported effort values per model (e.g. in /v1/models metadata) so clients can render accurate controls instead of discovering the failure at request time.
Thanks for the detailed report and the clear repro table!
In short, you're asking the Go gateway to handle reasoning_effort values that some upstreams don't support. For mimo-v2.6-flash, that would mean either clamping them (max → high, minimal → low) or listing the supported effort values per model in /v1/models. Today a request with one of those values fails with a raw upstream 400. Right now the gateway passes the effort value to the upstream unchanged, and that upstream only seems to accept low, medium and high. So I've filed this as a gateway improvement rather than a bug. Maintainers will consider it.
Activity
ruixiaozi commentedon Sep 25, 2026
+1
opencodejr commentedon Oct 28, 2026
Thanks for the detailed report and the clear repro table!
In short, you're asking the Go gateway to handle
reasoning_effortvalues that some upstreams don't support. Formimo-v2.6-flash, that would mean either clamping them (max→high,minimal→low) or listing the supported effort values per model in/v1/models. Today a request with one of those values fails with a raw upstream 400. Right now the gateway passes the effort value to the upstream unchanged, and that upstream only seems to acceptlow,mediumandhigh. So I've filed this as a gateway improvement rather than a bug. Maintainers will consider it.Related issues:
n) through to the upstream as a 400