OpenCode Free Tier returns 403 when used through 9Router
OpenCode free-tier models are currently returning HTTP 403 when accessed through 9Router.
The error returned is:
HTTP 403: [403]: {
"type": "error",
"error": {
"type": "FreeTierError",
"message": "Error from provider (Console): OpenCode's free tier can only be used from within OpenCode"
}
}It looks like OpenCode has changed or restricted its free-tier access so that free models can only be used directly from the OpenCode client.
Because 9Router acts as a proxy/router, requests to OpenCode free-tier models are now rejected.
Environment
- 9Router version:
v0.5.75 - Deployment: Docker
- OS: Ubuntu
- API endpoint:
/v1 - Provider: OpenCode
- Authentication: OpenCode account / free tier
Affected models
Examples:
mimo-v2.5-free
muse-spark-1.2-contributor-freePotentially all OpenCode free-tier models are affected.
Steps to reproduce
- Deploy 9Router
v0.5.75 - Login or configure OpenCode provider
- Select an OpenCode free-tier model
- Send a request through the 9Router OpenAI-compatible API
- Request fails with HTTP 403
Example request flow:
Client / Hermes
↓
9Router
↓
OpenCode
↓
HTTP 403 FreeTierErrorActual behavior
The request fails with:
OpenCode's free tier can only be used from within OpenCodeExpected behavior
If OpenCode free-tier access is still supported by 9Router, requests should work normally.
If OpenCode no longer allows third-party/proxy access to free-tier models, 9Router should ideally:
- Detect this restriction
- Show a clearer error message in the UI
- Mark affected OpenCode free-tier models as unavailable
- Avoid repeatedly routing requests to an unusable free-tier endpoint
- Optionally fallback to another configured provider/model
Additional notes
This appears to be a provider-side restriction rather than a Docker, networking, or 9Router API configuration issue.
Paid OpenCode models or other providers may still work normally.
It would be useful to know whether:
- OpenCode free-tier support can still be maintained in 9Router
- Authentication or API behavior has changed
- Free-tier models should be removed/disabled from the provider list
- A fallback mechanism can be added when this specific
FreeTierErroroccurs
Source: decolua/9router