Skip to content

[BUG] FreeUsageLimitError raised with no free usage in the 24h window (free plan, $0 balance) — reset window not exposed to CLI/API #58205

Closed as not planned

Description

@yysofiyan

Description

A free-tier account (no Go subscription, $0 balance, console shows 0.00 quota) gets FreeUsageLimitError on all free Zen models even though no free-model usage happened in the current window. The free limit is enforced server-side (see also #54338), but either the reset window is counted incorrectly, or it is far more aggressive than the standard daily reset users expect.

Recent issues with the same symptom: #35568 ("Free usage exceeded sin consumo real"), #47318 (free plan, free models only, hit "Limit Exceeded"), #50610 (free usage limits not showing/working correctly). Paid-with-balance users hitting the same cap are tracked in #33318 / #33495.

Related pain point: #54338 — the free-tier rate-limit reset timestamp is not exposed via CLI or API, so users cannot verify whether the counter is wrong or when it will unblock.

Expected Behavior

  • With no free-model requests since the previous reset, opencode run --model opencode/<free-model> should stream normally.
  • The CLI/TUI should expose the current free-tier usage counter and reset time (e.g. via opencode stats or a zen usage endpoint) so this kind of report can be self-diagnosed.

Actual Behavior

Every free model returns FreeUsageLimitError immediately (<1s) on the first request of the day. Direct API probes without the OpenCode client return the misleading FreeTierError: OpenCode's free tier can only be used from within OpenCode instead of a usage status.

Steps to reproduce (fresh session):

opencode run --model opencode/beam-free "Reply exactly OK"
# > build · beam-free  → silence for 90s, then no response

Server log (~/.local/share/opencode/log/opencode.log):

timestamp=2026-10-22T18:50:09Z level=INFO  run=739c7192 stream providerID=opencode modelID=beam-free (first request of the day)
timestamp=2026-10-22T18:50:10Z level=ERROR run=739c7192 "stream error" providerID=opencode modelID=gpt-5.4-nano small=true  error="AI_APICallError: Upstream request failed: Insufficient account funds"
timestamp=2026-10-22T18:50:11Z level=ERROR run=739c7192 "stream error" providerID=opencode modelID=beam-free small=false error="AI_APICallError: Free usage limit reached. Subscribe to OpenCode Go to keep going: https://opencode.ai/go"
timestamp=2026-10-22T18:51:46Z level=ERROR run=0e71060d "stream error" providerID=opencode modelID=big-pickle small=false error="AI_APICallError: Free usage limit reached. Subscribe to OpenCode Go to keep going: https://opencode.ai/go"

Note two distinct errors within the same second: the free-model request gets "Free usage limit reached" and the small/title agent (gpt-5.4-nano) gets "Insufficient account funds" — a $0 balance, so the fund error is expected, but it confirms this is a free-only account.

Environment

  • OpenCode version: 1.19.4 (latest release, CLI)
  • Plan: Free (no Go subscription, no balance)
  • Last confirmed free-model usage prior to this tap: previous day (not today)
  • OS: macOS 27.0.1, Apple Silicon (arm64)
  • Auth: single opencode API key credential in auth.json
  • Same failure for all tested free models: beam-free, big-pickle (and, routed through a local OpenAI-compatible proxy, the other free models returned the same 429 FreeUsageLimitError upstream)
  • Local stats for reference (opencode stats): 94 sessions / 12,372 messages over 63 days, total cost $0.00

Request

  1. Fix the free-tier counter accounting so that a window with no usage is not reported as limit-exhausted — or publish the exact reset rule so users can plan.
  2. Expose free-tier usage + reset timestamp via the CLI (e.g. opencode stats --zen, as suggested in provider/opencode: free tier rate limit reset time not exposed via CLI or API #54338).
  3. Make the direct-API free-tier response carry the same 429 FreeUsageLimitError signal, not the clientless FreeTierError message.

Activity

  1. opencode-agent commented on Oct 22, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed report, and sorry about this. Getting Free usage limit reached on the first request of the day, with no free usage in the window, is frustrating.

    The OpenCode Console (Zen) service sets and enforces this limit for your account, workspace and network. The OpenCode app only shows the error it gets back, so someone on the team needs to look at your account. Billing and account support isn't handled in GitHub issues. Please email [email protected] with:

    • roughly when it happened, with your timezone (e.g. 2026-10-22 18:50 UTC)
    • the models you tried
    • that no free models were used since the previous day

    If you've already emailed, the team will get to it, especially now that we've seen it here. Please keep email addresses, API keys, account IDs and other account details out of this public issue and put them only in the email.

    About your other requests: you're on 1.19.4, which is OpenCode v1. v1 only gets fixes for critical bugs, so changes to its CLI output are unlikely. Showing the exact reset time is tracked in #52894. The reset time can also be seen at https://opencode.ai/console.

    Related reports, ordered by likelihood:

    If you use a VPN, proxy or another shared network, it may be worth trying without it. Free-tier limits can also be applied per network.

    The bot will close this issue in 1 day.

  2. juiceydev commented on Oct 22, 2026

    @juiceydev

    same thing happening here

  3. JustOmar76 commented on Oct 22, 2026

    @JustOmar76

    sameee

  4. K-3-LT commented on Oct 23, 2026

    @K-3-LT

    One detail in your log that may help whoever looks at the account: the first error of the day isn't the free model. At 18:50:10Z the small-model call (gpt-5.4-nano, used for titles) fails with "Insufficient account funds", and one second later beam-free gets "Free usage limit reached". #58284 also mentions title/compaction calls the user never started, and #58176 reports titles being rejected on the free tier.

    So it's worth testing whether that background paid call is involved. Pin the small model to a free one in opencode.json:

    {
    "small_model": "opencode/beam-free"
    }

    then retry opencode run --model opencode/beam-free "Reply exactly OK" and check whether the log still shows a nano call before the free one. Whatever the result, it's a useful extra data point for the email to [email protected].

  5. opencode-agent commented on Oct 23, 2026

    @opencode-agent
    Contributor

    Hi @yysofiyan, I'm closing this issue now. Account and free-tier usage problems on OpenCode Console (Zen) are handled by email, not in GitHub issues. If your free usage is still blocked, or anything else is unresolved, please email [email protected] and the team will look into it. Please keep any account details in the email and out of this public issue.

    Thanks for the detailed report. Showing the free-usage reset time in the app is tracked in #52894.

  6. rakeshkhichar8290-maker commented on Oct 24, 2026

    @rakeshkhichar8290-maker

    4. sameee

    same with me

  7. gist591 commented on Oct 24, 2026

    @gist591

    Same issue. Version 2.0.27, free account, Linux. Free usage limit reached since Oct 21 (all free models). On Oct 23 beam-free briefly worked, today (Oct 24) nothing works again. Log shows AI.Error.QuotaExceeded: Free usage limit reached on the very first SessionStep, no other model call before it (so the small-model theory doesn’t apply). No reset time in CLI, logs or console. Could the reset window and remaining allowance be exposed anywhere?

  8. Chatur7x commented on Oct 24, 2026

    @Chatur7x

    I'm seeing the same persistent free-model limit on OpenCode Desktop/CLI v2.1.4 on Windows.

    The block started on October 23, 2026 (IST), and remained on October 24 despite expecting the daily allowance to reset. Fresh CLI sessions on October 24 around 20:24–20:33 IST reproduced HTTP 429 / FreeUsageLimitError on all four tested models:

    • opencode/glm-5.3-flash-free
    • opencode/beam-free
    • opencode/deepseek-v4.1-flash-free
    • opencode/big-pickle

    Reproduction:

    opencode run --model opencode/big-pickle --format json "Reply only OK. Do not use tools."

    The response reports provider.free-limit, status 429, with "Free usage limit reached". At approximately 20:33 IST on October 24 it returned retryAfterMs: 32217000, pointing to approximately October 25 at 05:30 IST. The desktop displays that next reset time too. Local logs contain the same upstream error earlier on October 24, including 03:29 UTC and 06:13 UTC. Reloading the configuration did not resolve it.

    Could you investigate whether the allowance/reset is being accounted for correctly, or clarify why it remains blocked across days? I understand account-specific details may need to be provided privately to support; no credentials or private account identifiers are included here.

  9. xiaomeng-zi commented on Oct 26, 2026

    @xiaomeng-zi

    You've used today's free messages. They reset at 202610月27日 07:00.

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