anomalyco / anomalyco/opencode

[Bug] OpenCode Go: some models return `403 Forbidden: {"model":"<model>"}` while others work (subscription active, limits not reached)

Open
#40,343 3 comments 5 reactions 1 assignee View on GitHub

@fwang is already working on this.

Since Aug 3, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Description

Using the OpenCode Go provider (opencode-go) with an active subscription and API key, certain models fail with AI_APICallError: Forbidden. The error body echoes the requested model id:

Forbidden: {"model":"mimo-v2.5"}

The subscription is active and usage limits are not exhausted. Other Go models work fine with the same key.

Environment

  • opencode version: 1.18.11
  • OS: Windows
  • Provider: opencode-go (OpenCode Go subscription)
  • Key type: sk-... API key from the Zen console

Models affected

With the same API key, direct requests to https://opencode.ai/zen/go/v1/chat/completions:

Model Status
mimo-v2.5 403 {"model":"mimo-v2.5"}
mimo-v2.5-pro 403 {"model":"mimo-v2.5-pro"}
hy3 403 {"model":"hy3"}
gpt-5.6-luna (via /responses) 403
deepseek-v4-flash 200 OK
deepseek-v4-pro 200 OK
glm-5.2 200 OK
glm-5.1 200 OK
kimi-k3 200 OK
kimi-k2.7-code 200 OK
qwen3.8-max 200 OK
grok-4.5 500 (separate server error)

The affected models are listed in the gateway's catalog (GET https://opencode.ai/zen/go/v1/models includes mimo-v2.5, mimo-v2.5-pro, hy3, gpt-5.6-luna), so this is an authorization/entitlement decision, not "unknown model".

Repro (no opencode needed)

POST https://opencode.ai/zen/go/v1/chat/completions
Authorization: Bearer <opencode-go-api-key>
Content-Type: application/json

{ "model": "mimo-v2.5",
  "messages": [{ "role": "user", "content": "hi" }],
  "max_tokens": 3 }

Response:

HTTP/1.1 403 Forbidden
Content-Type: application/json

{"model":"mimo-v2.5"}

Not user-agent dependent (tested opencode, opencode/1.18.11, Mozilla/5.0 ..., curl/8.0, Python-urllib/3.11 — all return the same 403 body for the affected models; only Python-urllib triggers the separate Cloudflare 1010 block).

Expected behavior

All models advertised for the Go subscription (including mimo-v2.5) should be usable while the subscription is active and limits are not reached.

Additional context

  • A related issue (#39374) describes a Python-urllib user-agent 403 — this is a different case: here the 403 is model-specific and independent of user-agent.
  • Docs page lists MiMo-V2.5 as a current Go model: https://opencode.ai/docs/go/
Plugins

No response

OpenCode version

No response

Steps to reproduce

No response

Screenshot and/or share link

No response

Operating System

No response

Terminal

No response

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.