Skip to content

OpenCode free-tier usage limit shows no reset time in T3 Code #31088

Open

Description

@aradhyacp

What happened

When the OpenCode free tier runs out, T3 Code fails the thread as a plain "Provider error": "Free usage limit reached. Connect a provider or subscribe to OpenCode Go to keep going, or switch models."

It never says when the limit resets, so there is no "Resets …" time and no "Resume at reset" or "Snooze until reset" actions. OpenCode itself shows the reset time for the same failure:

"You've used today's free messages. They reset at 5:58 AM · 11/5/2026."

[SCREENSHOT: T3 Code thread showing the "Provider error" with "Free usage limit reached..." and no reset time]

Image

[SCREENSHOT: OpenCode TUI showing "You've used today's free messages. They reset at 5:58 AM · 11/5/2026."]

Image

Diagnosis

OpenCode already sends the reset time. Running opencode run --format json -m opencode/crouton-alpha-free "say hi" after the limit prints this error:

{"type":"error","error":{"type":"provider.free-limit","message":"Free usage limit reached. Connect a provider or subscribe to OpenCode Go to keep going, or switch models.","status":429,"response":{"body":"{"type":"error","error":{"type":"FreeUsageLimitError",...}}"},"retryAfterMs":21486000}}

retryAfterMs is 21,486,000 ms (about 5.97 hours), which matches the TUI's "reset at 5:58 AM".

T3 Code's OpenCode 2 adapter (packages/provider-opencode/src/server/v2/adapter.ts, session.execution.failed) only treats provider.quota (non-402) and provider.rate-limit as usage limits, so provider.free-limit is classified as a provider error. It also never reads retryAfterMs, so no reset time is recorded for the thread.

Related: #18315 noted that OpenCode didn't send a reset time for these failures at the time. The free-tier error does send one now.

[SCREENSHOT: terminal output of the opencode run --format json error above]

Steps to reproduce

  1. Connect the OpenCode provider (OpenCode 2.x) in T3 Code.
  2. Pick a free model, e.g. opencode/crouton-alpha-free.
  3. Use it until the free daily limit is reached.
  4. Send another message in a T3 Code thread.
  5. The thread fails with "Provider error" and no reset time. Run the same prompt in OpenCode and it shows when the limit resets.

Version

T3 Code desktop app 0.1.6 (prod build). Commit hash unknown. OpenCode CLI v2.2.5.

Environment

macOS. T3 Code desktop app with the OpenCode provider (OpenCode 2.x), free tier, model opencode/crouton-alpha-free.

Evidence

- Raw OpenCode error (see Diagnosis): type "provider.free-limit", status 429, retryAfterMs 21486000.
- T3 Code thread error text: "Free usage limit reached. Connect a provider or subscribe to OpenCode Go to keep going, or switch models." shown as "Provider error".

[SCREENSHOT: T3 Code thread with the provider error]
[SCREENSHOT: OpenCode TUI with the reset time]

Related issues

Searched pingdotgg/t3code issues and PRs for "opencode limit reset", "opencode usage limit", "provider.free-limit" and "retryAfterMs". Nothing covers the free-tier provider.free-limit error. Related, not duplicates: - #26265 / #26264: ChatGPT usage limit through OpenCode drops the reset time - #29301 (merged): Claude usage limits through OpenCode keep their reset time - #18315 (merged): OpenCode Go quota stops show as usage limits - #28375: show usage-limit warnings while OpenCode 2 retries

Fix applied or workaround

None. Check the reset time in the OpenCode TUI and resend after it passes.

Filed by

Claude Sonnet 5.5 via Claude Code in T3 Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    via-triageFiled through npx t3 triage

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions