Repository navigation
Description
Description
Description
When using omen-alpha via the OpenCode Go gateway (opencode.ai/zen/go/v1/chat/completions) from a third-party client (QwenPaw, an open-source agent framework using the OpenAI-compatible chat completions endpoint), requests intermittently fail with two distinct 400 errors returned by the "Console Go" provider:
Error 1 — [1210] thinking cannot be disabled
Error code: 400 - {'error': {'type': 'server_error', 'message': 'Error from provider (Console Go): Upstream request failed: [1210] This model always engages in thinking and cannot be disabled; please use low, high, or max'}}Error 2 — MissingSessionID
Error code: 400 - {'type': 'error', 'error': {'type': 'MissingSessionID', 'message': 'Error from provider (Console Go): Request is missing x-opencode-session and cannot be routed efficiently. Please see https://opencode.ai/docs/go/#where-can-i-use-it'}}Environment & Context
- Model: omen-alpha (Go subscription,
chat/completionsendpoint) - Client: QwenPaw (open-source agent framework, uses the standard OpenAI-compatible endpoint; not yet in the Validated Clients list — it does not currently send
x-opencode-session) - Time window: 2026-09-08, 08:46–10:07 (UTC+8); intermittent — most requests succeed, some fail
- Observed pattern: burst failures on consecutive messages, then recovery — consistent with gateway-side routing/fallback decisions
Controlled experiment (same session, model-switched)
In the same session (identical context size, identical request pattern, rapid consecutive messages):
Model | Result -- | -- omen-alpha | 400 [1210] / MissingSessionID reproduced consistently DeepSeek v4 flash | zero failures, rapid consecutive messages all succeedThis isolates the failure to the omen-alpha routing path (not client concurrency, not channel queuing, not oversized context).
Analysis
Error 1: For the failing requests, the client does not send any thinking-related parameters (no reasoning_effort, no enable_thinking). The gateway appears to inject a "disable thinking" parameter when routing the request — but omen-alpha always engages in thinking and rejects it with [1210].
We also tried explicitly sending reasoning_effort: "low" (and "high") from the client via extra_body — the error still occurred, suggesting the gateway may override or drop client-side thinking parameters for these routed requests.
Error 2: QwenPaw does not send x-opencode-session (documented requirement: https://opencode.ai/docs/go/#where-can-i-use-it). Requests lacking the header fail when the gateway needs to make routing decisions.
Impact
In a chat/agent product this surfaces as intermittent "Internal error" replies to end users. Conversations fail in bursts (consecutive messages), then self-recover — making it hard to debug from the client side.
Workaround confirmed: switching the model from omen-alpha to deepseek-v4-flash (same session, same client, same request pattern) made all failures stop immediately — further confirming the issue is specific to the omen-alpha routing path.
Suggested remediation
- Gateway: preserve or forward client thinking parameters when routing omen-alpha requests, instead of injecting a "disabled" flag (omen-alpha rejects it).
- Gateway: make
x-opencode-sessiondegrade gracefully (log/flag) rather than hard-fail with 400, or provide a documented migration path for third-party clients. - Client-side (QwenPaw): we will add
x-opencode-sessionsupport in an upcoming release; tracking in our repo.
Related
- [Bug] OpenCode Go upstream 400 [1210] parameter error triggered by Unicode multiplication sign (U+00D7) and trailing quotes in GLM-5.3-Flash #46378 — same [1210] error code but different root cause (GLM-5.3-Flash Unicode tokenizer vs. thinking parameter routing)
Additional info (compliance)
- OpenCode version: Go gateway API (opencode.ai/zen/go/v1/chat/completions),
called via third-party client QwenPaw 2.2.0 (OpenAI-compatible provider) - Steps to reproduce:
- Use omen-alpha via the Go chat/completions endpoint from a third-party
client (no x-opencode-session header) - Send rapid consecutive requests (burst pattern)
- Observe intermittent 400 [1210] "This model always engages in thinking
and cannot be disabled" and/or MissingSessionID - Switch model to deepseek-v4-flash in the same session → failures stop
immediately
- Use omen-alpha via the Go chat/completions endpoint from a third-party
- Operating System: Linux (client-side server); issue is gateway-side
- Terminal: n/a (HTTP API client)
Activity
github-actions commentedon Sep 8, 2026
Thanks for updating the issue! It now includes the required information — clear error messages, reproduction steps, environment details, and a controlled experiment isolating the issue to the omen-alpha routing path. The
needs:compliancelabel has been removed.VishvakR commentedon Sep 14, 2026
had a look through the gateway code that's in this repo (
packages/console/app/src/routes/zen) and it doesn't touch thinking params at all.prepareRequestBodyonly rewrites themodelfield and passes the rest of the body through, and neitherMissingSessionIDnor the [1210] text shows up anywhere in the repo.handler.tsjust prefixes whatever the upstream sends back with "Error from provider (Console Go)".so both errors are coming from the Console Go inference service behind it, and which upstream
omen-alphagets routed to is in theZEN_MODELSconfig, not the open code. my guess from the burst pattern is one of the fallback upstreams for omen-alpha sends thinking disabled, but i can't see that from here. i don't think it can be fixed with a PR here, it needs someone on the Go side to check the routing for that model.the MissingSessionID part is the documented header requirement, so once QwenPaw sends
x-opencode-sessionthat one should go away.opencodejr commentedon Oct 28, 2026
Thanks for the detailed report, @ZIYE-JK. Intermittent 400s like these are frustrating.
This is about the OpenCode Go service itself, not the OpenCode app, and support for Go, Console and accounts isn't handled in GitHub issues. Please email help@anoma.ly with the details: the model (
omen-alpha), the time window (2026-09-08, 08:46–10:07 UTC+8), the client and the exact error responses. If you've already emailed, the team will get to it, especially now that we've seen it here. Please keep account details, API keys and email addresses out of this public issue and put them only in the email.In the meantime, two things on the client side may help:
MissingSessionID: Go expects every request to carry a stable session ID in thex-opencode-sessionheader, one per conversation. Clients that don't send it can be rejected (see Where can I use it?). QwenPaw would need to add this header; the Harnesses page shows what it should look like.[1210] thinking cannot be disabled: omen-alpha always uses thinking. If QwenPaw sometimes sends a request that turns thinking off or uses an unsupported effort level, the provider rejects it. Always sending a reasoning effort oflow,highormaxfor this model should avoid it.The bot will close this issue in 1 day.
opencodejr commentedon Oct 29, 2026
Closing this now: support for OpenCode Go, Console and accounts is handled by email, not in GitHub issues. @ZIYE-JK, if anything is still unresolved, please email help@anoma.ly with the details (the model, the time window and the exact error responses), and keep account information out of this public thread.
On the client side: sending a stable
x-opencode-sessionheader and always setting a reasoning effort (low,highormax) foromen-alphashould help with both errors. Thanks again for the detailed report!