Repository navigation
Description
Summary
OpenCode Desktop 1.19.4 (Windows) fails every Zen free-model request with Free usage limit reached. Subscribe to OpenCode Go... while the v2 CLI (2.0.32) on the same machine, using the same shared auth.json, succeeds consistently with the same model at the same wall-clock times. The user's quota is intact — the error appears to be a misreported client/eligibility rejection. The Desktop UI shows a persistent "Free usage exceeded" banner that regenerates on every app launch.
Environment
- opencode version: CLI
v2.0.32(npm@opencode/cli, channellatest); OpenCode Desktop1.19.4(GitHub releasev1.19.4, published 2026-10-22, auto-updater channellatest— reports itself up-to-date) - OS: Windows_NT 10.0.26200 (win32 x64)
- Terminal: Unavailable: terminal environment variables are not set (issue reproduced from Desktop app; CLI used for comparison via Windows Terminal/pwsh)
- Shell:
C:\WINDOWS\system32\cmd.exe(COMSPEC) - Install/channel: CLI: npm global install,
latestchannel; Desktop: NSIS installer, GitHub releaseslatestchannel - Active plugins: none configured in
opencode.jsonc(server reports 12 built-in plugins)
Reproduction
- Same machine and account; single shared credential file
~/.local/share/opencode/auth.json(provideropencode,type: api). No separate Desktop credential store exists (searched Desktop data dir and all XDG/config paths). - CLI control test:
opencode run --model opencode/deepseek-v4.1-flash-free "responde unicamente: ok"→ returnsok. Repeat → returnsok2. (Two consecutive successes, ~5 minutes apart, local 17:30–17:35.) - Launch OpenCode Desktop 1.19.4. It spawns its own sidecar server (
http://127.0.0.1:58183) which logs to the shared~/.local/share/opencode/log/opencode.log. - Resume/open any session using an
opencode/*free model. - The stream fails within ~700 ms. Shared log:
timestamp=2026-10-25T00:32:52.649Z level=INFO message=stream providerID=opencode modelID=deepseek-v4.1-flash-free session.id=ses_*** agent=build mode=primary
timestamp=2026-10-25T00:32:53.328Z level=ERROR message="stream error" providerID=opencode modelID=deepseek-v4.1-flash-free error.error="AI_APICallError: Free usage limit reached. Subscribe to OpenCode Go to keep going: https://opencode.ai/go"
That Desktop failure happened 2 minutes after a successful CLI call with the identical model and credential.
Expected Behavior
Free models should work in Desktop exactly as they do in the v2 CLI with the same account. If a quota were actually exhausted, the CLI would fail at the same time — it does not. Alternatively, a non-quota failure (client eligibility/auth) should surface its real message instead of the quota upsell.
Actual Behavior
Every Desktop request to opencode/* models fails with the quota upsell, and the UI shows a persistent "Free usage exceeded" banner. The CLI never fails. Relaunching the app regenerates the banner because Desktop re-fires the session-resume request and it fails again — there is no stale client-side state involved (verified: no persisted banner/retry state exists in Desktop storage).
Additional Context
- Timeline: onset ~2026-10-21 with
Upstream request failed: Endpoint is unavailable(only ondeepseek-v4.1-flash-free); from 2026-10-23 the error becameFree usage limit reached. Suggests a server-side migration around Oct 21–23 changed how v1-era clients are treated. - A/B proof (same account, same model, same 5-minute window): CLI
ok/ok2vs DesktopFree usage limit reached. - Auth was refreshed at 17:19 local today (auth.json mtime) and Desktop still failed at 17:32 — not a stale-credential issue.
- Workarounds tried (all failed):
opencode service restart, multiple full Desktop quits/relaunches, fresh launch after quota recovered. Re-login not expected to help given the fresh auth.json mtime above. - No newer Desktop build exists to test: Desktop auto-updater (
channel: latest) reports1.19.4as latest, and GitHubreleases/latestalso returnsv1.19.4(2026-10-22). - Possible related reports: Zen free models fail with FreeTierError in official CLI 1.18.34 (Linux) #52907 (Zen free models fail with FreeTierError in 1.18.x CLI), Free Usage Limit Exceeded on First Request (DeepSeek V4 Flash Free / OpenCode Zen) #42128 (FreeUsageLimitError on first request), provider/opencode: free tier rate limit reset time not exposed via CLI or API #54338 (free-tier errors misreported).
- Impact: Desktop is unusable with free models; affected users must fall back to CLI or the web UI.
Activity
opencode-agent commentedon Oct 25, 2026
Thanks for the detailed A/B comparison, @crashover40.
OpenCode Desktop 1.19.4 is part of OpenCode v1 (versions 0.x and 1.x). v1 only gets fixes for critical bugs such as data loss, security problems or breakage with no workaround. Because the v2 CLI works for you with the same account and model, this is unlikely to be fixed in v1. We recommend moving to v2, which also has a Desktop app (other reports mention Desktop 2.1.x).
One thing that may explain the difference: in your test the CLI ran
opencode run, which starts a new, small session, while Desktop was resuming an existing session. #58751 reports (on v2) thatFree usage limit reacheddepends on how big the request is. A session with a large context is refused on every turn, while a new session on the same account succeeds in the same minute. You could check this by starting a brand-new session in Desktop, or by resuming the same session in the CLI withopencode run --session <id> ....These related issues are ordered from most to least likely to cover what you're seeing:
FreeUsageLimitErrordepends on request/context size; long sessions fail while new ones succeedIf this still happens with a new session in v2 (CLI or Desktop), or you believe it is critical, please reply here with the details.
fjncshhj commentedon Oct 25, 2026
God! Thank you for reporting this issue. My OpenCode desktop app is working again now. This issue should be surfaced automatically to everyone who runs into the same problem.
opencode-agent commentedon Oct 26, 2026
Closing this as not planned. The problem is in OpenCode Desktop 1.19.4, which is v1, and v1 only gets critical fixes. The v2 CLI works with the same account and model, so there is a workaround. We haven't heard back, so we're closing it now.
If you see
Free usage limit reachedon v2 (CLI or Desktop), including in a new session, please open a new issue with the v2 version and steps. #58751 may also explain what you saw: free-tier requests with a large session context are refused, while small new sessions still go through. Thanks for the detailed report, @crashover40.