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
Error: 429: {"type":"FreeUsageLimitError","message":"Error from provider (Console): Rate limit exceeded. Please try again later."} #42029
Error: 429: {"type":"FreeUsageLimitError","message":"Error from provider (Console): Rate limit exceeded. Please try again later."}
??????????????
I have not used it today
Steps to reproduce is empty — please describe what you were doing when the error occurred (e.g., which model/provider you were using, what action triggered it)
OpenCode version is missing
Operating System and Terminal are missing
The description only contains the raw error message with no additional context
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
This issue might be a duplicate of existing issues. Please check:
The issue is triggered by the User-Agent header, not the API key or IP address. The upstream "Console" inference provider (which serves the -free models) gates anonymous free capacity strictly based on this header:
TUI request (User-Agent: opencode/<version>) → 200 OK
Custom request (User-Agent: curl/8.0 or any non-opencode UA) → 429 FreeUsageLimitError
Testing confirmed that x-opencode-client, x-opencode-version, and session headers alone do not unlock the capacity. Only the User-Agent value matters.
According to the source code (packages/opencode/src/session/llm/request.ts), the TUI always sends User-Agent: opencode/<version>. The gateway strips all x-opencode-* headers before forwarding upstream but passes the User-Agent through untouched, allowing the upstream provider to use it for free-pool validation.
Fix
Set the opencode User-Agent directly on your request:
Verified: Including the opencode/ UA returns an HTTP 200 (including streaming). Excluding it results in a 429 error, regardless of IP or key.
Notes
This restriction only affects -free models. Paid and balance-backed models are not gated by the User-Agent.
This is an anti-abuse gate designed to reserve free capacity for the official client. Because of this, it may change at any time. For long-term stability, it is better to Bring Your Own Key (BYOK) with a non-free model.
If you are writing a custom client, inject User-Agent: opencode/<version> into the request. Please also forward the user's real IP so per-IP quotas remain fair.
Activity
MathieuT1508 commentedon Aug 12, 2026
I have the same problem , it's affect the sub agent for me
github-actions commentedon Aug 12, 2026
This issue doesn't fully meet our contributing guidelines.
What needs to be fixed:
Please edit this issue to address the above within 2 hours, or it will be automatically closed.
This issue might be a duplicate of existing issues. Please check:
If you believe this was flagged incorrectly, please let a maintainer know.
Dave147789 commentedon Aug 12, 2026
I have the same problem
github-actions commentedon Aug 12, 2026
This issue has been automatically closed because it was not updated to meet our contributing guidelines within the 2-hour window.
Feel free to open a new issue that follows our issue templates.
12errh commentedon Aug 13, 2026
@MrMushrooooom @Dave147789 @palmamartin @MathieuT1508
Root Cause
The issue is triggered by the
User-Agentheader, not the API key or IP address. The upstream "Console" inference provider (which serves the-freemodels) gates anonymous free capacity strictly based on this header:User-Agent: opencode/<version>) →200 OKUser-Agent: curl/8.0or any non-opencode UA) →429 FreeUsageLimitErrorTesting confirmed that
x-opencode-client,x-opencode-version, and session headers alone do not unlock the capacity. Only theUser-Agentvalue matters.According to the source code (
packages/opencode/src/session/llm/request.ts), the TUI always sendsUser-Agent: opencode/<version>. The gateway strips allx-opencode-*headers before forwarding upstream but passes theUser-Agentthrough untouched, allowing the upstream provider to use it for free-pool validation.Fix
Set the
opencodeUser-Agent directly on your request:Verified: Including the
opencode/UA returns an HTTP 200 (including streaming). Excluding it results in a 429 error, regardless of IP or key.Notes
-freemodels. Paid and balance-backed models are not gated by the User-Agent.User-Agent: opencode/<version>into the request. Please also forward the user's real IP so per-IP quotas remain fair.Distinguir el limite de uso y la caida del proveedor como familias pr…