anomalyco / anomalyco/opencode
OpenCode Go: 10 of 35 cataloged models return persistent errors on /v1 endpoint (500s, oa-compat format, upstream not serving)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
OpenCode Go — Unusable Models Report (10 of 35 listed models return persistent errors)
Date: 2026-09-05
Plan: OpenCode Go ($10/month, full)
Endpoint tested: https://opencode.ai/zen/go/v1 (OpenAI-compatible oa-compat format)
Key: Single OPENCODE_GO_API_KEY — same key successfully completes on 24/35 models, so this is not an auth or billing issue.
Method: Each model called with POST /v1/chat/completions, prompt "Reply with exactly the single word: pong", max_tokens=64. Every model below failed identically on 3 consecutive attempts (persistent, not transient).
Summary
Your /models catalog advertises models that are not actually reachable on the Go plan. 10 of 35 fail with persistent errors, falling into three root-cause buckets. One additional model (kimi-k2.7-code) was failing during initial testing but recovered on retry.
Working (24): minimax-m3, minimax-m2.5, deepseek-v4-pro, deepseek-v4-flash, deepseek-v4-flash-vision-exp, glm-5, glm-5.1, glm-5.2, glm-5.3, glm-5.3-flash, qwen3.5-plus, qwen3.6-plus, qwen3.7-plus, qwen3.7-max, qwen3.8-max, qwen3.8-flash, kimi-k3, kimi-k2.6, mimo-v2.5, mimo-v2.5-pro, longcat-2.0, hy3, hy4-preview, omen-alpha
Bucket 1 — OpenCode Go gateway 500 "Internal server error" (4 models)
These never reach an upstream model; OpenCode's own router crashes.
| Model | Error (HTTP 500) |
|---|---|
minimax-m2.7 |
{"type":"error","error":{"type":"error","message":"Internal server error"}} |
gpt-5.6-luna |
{"type":"error","error":{"type":"error","message":"Internal server error"}} |
muse-spark-1.3-contributor |
{"type":"error","error":{"type":"error","message":"Internal server error"}} |
muse-spark-1.2-contributor |
{"type":"error","error":{"type":"error","message":"Internal server error"}} |
Notes / known context:
- Matches the widely-reported OpenCode Go service instability (see GitHub issue
anomalyco/opencode#36889"OpenCode Go service (zen/go/v1) frequent intermittent outages — HTTP 000 / 503 / Cloudflare 524", plus multiple r/opencode threads). - For the muse-spark models specifically there is a documented adapter-routing bug in the OpenCode/OCX stack: the model is routed through the
openai-chatadapter, which yields a 500, whereas it only works through theopenai-responsesadapter. Community workaround for the local CLI ismodelAdapters: { "muse-spark-...": "openai-responses" }. The HTTP/v1endpoint has no such escape hatch, so these are unusable. gpt-5.6-lunaandminimax-m2.7appear to be listed but not wired on the Go router.
Ask: Please investigate why these four models 500 at the gateway, fix the muse-spark adapter routing, and either wire gpt-5.6-luna / minimax-m2.7 or remove them from the catalog.
Bucket 2 — Format incompatibility on oa-compat endpoint (1 model)
| Model | Error (HTTP 401) |
|---|---|
grok-4.6 |
{"type":"error","error":{"type":"ModelError","message":"Model grok-4.6 is not supported for format oa-compat"}} |
Ask: Either serve grok-4.6 through an adapter that supports it on the /v1 endpoint, or clearly mark it as "not available via API / OpenAI-compatible format only" in the catalog so subscribers know it can't be reached through this endpoint.
Bucket 3 — Upstream providers not serving the model (5 models)
These reach an upstream but the upstream rejects / doesn't serve the model.
| Model | Error |
|---|---|
mimo-v2-pro |
HTTP 400 Error from provider (Console Go): Upstream request failed: [400] Unsupported model mimo-v2-pro |
mimo-v2-omni |
HTTP 400 ... [400] Unsupported model mimo-v2-omni |
hy3-preview |
HTTP 400 ... Upstream request failed: Model is unavailable. |
grok-4.5 |
HTTP 503 ... Upstream request failed: Endpoint is unavailable. |
kimi-k2.5 |
HTTP 400 ... [404] No allowed providers are available for the selected model. Providers serving moonshotai/kimi-k2.5-0127: siliconflow, deepinfra, atlas-cloud, digitalocean, venice, novita, amazon-bedrock, phala, but your request's provider.only preference permits only: moonshotai. |
Notes:
mimo-v2-pro/mimo-v2-omni: the newermimo-v2.5/mimo-v2.5-proboth work; these older v2 variants are not routed. Please either enable them or remove from catalog.hy3-preview:hy3andhy4-previewboth work; onlyhy3-previewis dead.grok-4.5: xAI endpoint capacity/outage (consistent with OpenCode changelog entries about retrying xAI capacity errors).kimi-k2.5: clearly a routing/config bug on OpenCode's side. The upstream modelmoonshotai/kimi-k2.5-0127is served by 8 providers (siliconflow, deepinfra, atlas-cloud, digitalocean, venice, novita, amazon-bedrock, phala) but not by moonshotai itself, yet the request pinsprovider.only: moonshotai. Please fix the provider whitelist.
Repro
KEY="$(grep '^OPENCODE_GO_API_KEY=' ~/.hermes/.env | cut -d= -f2-)"
for m in minimax-m2.7 gpt-5.6-luna muse-spark-1.3-contributor muse-spark-1.2-contributor \
mimo-v2-pro mimo-v2-omni kimi-k2.5 hy3-preview grok-4.5 grok-4.6; do
curl -sS -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
-d '{"model":"'$m'","messages":[{"role":"user","content":"Reply with exactly: pong"}],"max_tokens":64}' \
https://opencode.ai/zen/go/v1/chat/completions | head -c 300
echo " <= $m"
done
Requested actions (prioritized)
- Fix the
kimi-k2.5provider whitelist (provider.only: moonshotai→ allow the 8 providers that actually serve it). Smallest, clearly-correct fix. - Fix muse-spark adapter routing (
openai-chat→openai-responses) to stop the 500s. - Investigate gateway 500s for
gpt-5.6-luna/minimax-m2.7; wire them or de-list. - Serve
grok-4.6via a compatible adapter on/v1, or mark it format-limited in the catalog. - Enable or de-list
mimo-v2-pro,mimo-v2-omni,hy3-preview; restoregrok-4.5endpoint. - Publish the long-requested
status.opencode.aiso subscribers can distinguish "service down" from "model not available" instead of guessing.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the provided curl reproduction against /v1/chat/completions and compare the failing models with the /models catalog. Trace the catalog entries, provider restrictions, and adapter routing for kimi-k2.5 and the muse-spark models first. Done means the prioritized failures either serve successfully through the endpoint or are accurately removed or marked unavailable, with regression coverage for the routing decisions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100