Skip to content

desktop: free models report 'Free usage limit reached' while CLI v2 succeeds with same account #58835

Closed as not planned

Description

@crashover40

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, channel latest); OpenCode Desktop 1.19.4 (GitHub release v1.19.4, published 2026-10-22, auto-updater channel latest — 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, latest channel; Desktop: NSIS installer, GitHub releases latest channel
  • Active plugins: none configured in opencode.jsonc (server reports 12 built-in plugins)

Reproduction

  1. Same machine and account; single shared credential file ~/.local/share/opencode/auth.json (provider opencode, type: api). No separate Desktop credential store exists (searched Desktop data dir and all XDG/config paths).
  2. CLI control test: opencode run --model opencode/deepseek-v4.1-flash-free "responde unicamente: ok" → returns ok. Repeat → returns ok2. (Two consecutive successes, ~5 minutes apart, local 17:30–17:35.)
  3. 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.
  4. Resume/open any session using an opencode/* free model.
  5. 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 on deepseek-v4.1-flash-free); from 2026-10-23 the error became Free 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 / ok2 vs Desktop Free 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) reports 1.19.4 as latest, and GitHub releases/latest also returns v1.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

  1. opencode-agent commented on Oct 25, 2026

    @opencode-agent
    Contributor

    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) that Free usage limit reached depends 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 with opencode run --session <id> ....

    These related issues are ordered from most to least likely to cover what you're seeing:

    If this still happens with a new session in v2 (CLI or Desktop), or you believe it is critical, please reply here with the details.

  2. fjncshhj commented on Oct 25, 2026

    @fjncshhj

    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.

  3. opencode-agent commented on Oct 26, 2026

    @opencode-agent
    Contributor

    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 reached on 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions