Repository navigation
Description
Summary
OpenCode Desktop 2.0.32 rejects DeepSeek Free requests with HTTP 403 FreeTierError on a home connection, while the same original session, account, selected model, permissions, and diagnostic prompt succeed on a phone hotspot. Returning to the home connection reproduces the failure. No client fix has been verified.
Environment
- opencode version: 2.0.32, official Desktop-bundled CLI.
- OS: macOS, Darwin 25.6.0 arm64.
- Terminal: Desktop application; diagnostic shell has
TERM=xterm-256color;TERM_PROGRAMandCOLORTERMunset. - Shell:
/bin/zsh. - Install/channel: official macOS Desktop; runtime reports latest channel.
- Configured plugins: Superpowers,
@dietrichgebert/ponytail, local workflow plugin, and a local model-scoped client-identification workaround. A Hindsight integration is also present in the runtime. See the isolated-client limitation below. - Model:
opencode/deepseek-v4.1-flash-free, max variant, custom primary agent. - Home connection: Comcast/Xfinity, Vantiva-made gateway. Public IPs and account/device identifiers intentionally omitted.
Reproduction
- In the official Desktop application, select the existing primary agent and
opencode/deepseek-v4.1-flash-free, max variant. - On the home connection, send:
Normal-network diagnostic only. Do not resume implementation, use tools, or read files. Reply exactly NORMAL_NETWORK_OK. - Observe the HTTP 403 below before any tool call.
- Switch only the connection to a phone hotspot. Keep the same session, account, model, permissions, and prompt. The response is
NORMAL_NETWORK_OK, with recorded cost $0. - Switch back to the home connection and repeat the same prompt in the same session. The HTTP 403 returns.
Expected Behavior
A legitimate request from OpenCode should work, or the error should explain the actual eligibility restriction rather than claim the user is outside OpenCode.
Actual Behavior
The client reports provider.auth, status 403. Response body:
{"type":"error","error":{"type":"FreeTierError","message":"OpenCode's free tier can only be used from within OpenCode. Download it at https://opencode.ai and keep building."}}Matched observations on 2026-10-17: home failure around 06:52 UTC, hotspot success at 06:57:52 UTC, then home failure at 07:15:46 UTC. This is an observed network-dependent reproduction, not proof of a particular backend cause or general outage.
Additional Context
- The local workaround sets the DeepSeek Free User-Agent to
opencode/2.0.32. It was retained across the matched network comparison. Separate home failures verified that normalized header on outgoing requests; the workaround is not sufficient. Native identification also failed in separate home controls. - Existing-account OAuth reauthentication and fresh/private clients did not repair home access. Built-in build-agent controls on 2.0.32 and 2.0.28, with third-party plugins excluded but existing global permission rules retained, also failed at home. These isolated configurations were not paired with a known-working hotspot control; they do not fully rule out permission/toolset interactions.
- Temporary localhost CONNECT diagnostics preserved end-to-end TLS. Separate IPv4-only and IPv6-only clean-client requests failed. Initial family tests omitted the header workaround; later IPv4 controls included it and verified the outgoing header. Not every combination was tested. All diagnostic tunnels were stopped; no persistent proxy was installed.
- The home resolver's A/AAAA answers matched an independent HTTPS resolver. No enabled system HTTP/HTTPS/SOCKS proxy or proxy/custom-CA environment overrides were found. The checked certificate issuer was Google Trust Services WE1. These checks do not exclude every network or provider-edge issue.
- The user reports no matching
opencode.aievents in Xfinity CyberSecure. This history was not independently inspected and does not prove filtering is absent. Protection was not disabled. - No permissions were weakened, dummy tools added, accounts deleted, or paid models substituted as a repair. The initial error preceded later worker/tool changes.
- Related symptom reports: OpenCode's free tier can only be used from within OpenCode. Download it at https://opencode.ai and keep building. #55737 and policy: deny shell * on custom agent breaks free tier with "can only be used from within OpenCode" #50627. Their reported workarounds do not establish the cause of this home/hotspot reproduction.
Could maintainers advise which request/correlation metadata would be useful to provide privately, and whether backend free-tier validation could explain this network-dependent rejection? No IP ban, ISP block, or exact request-validation condition has been established.
Activity
opencode-agent commentedon Oct 17, 2026
Thanks for the careful write-up, @MarkJRogers92. I think this is a duplicate of #56334, the issue you opened earlier today. It describes the same thing: Desktop 2.0.32,
opencode/deepseek-v4.1-flash-free, a 403FreeTierErroron your home connection, the same session working on another network, and the same controls.Possible duplicates and related issues, ordered from most to least likely:
x-opencode-log-id,cf-rayand UTC timestamps (06:52, 06:57:52 and 07:15:46 UTC here). The free-tier check runs in the hosted gateway, so only the team can see why your home network is rejected. Please keep public IPs and account details out of GitHub and put them only in the email.bashtool. Your built-in Build agent controls already rule this out.The bot will close this issue as a duplicate in 1 day unless you reply explaining how it differs from #56334.
MarkJRogers92 commentedon Oct 17, 2026
Additional request-tracing metadata from the user-provided OpenCode Console view:
73cae486-db4a-4b5f-9bc4-a72c77634d00Oct 17, 2026, 05:37:32(timezone not shown; not converted)POST /inference/openai/v1/chat/completions403opencode-agent commentedon Oct 17, 2026
Thanks, @MarkJRogers92. The request ID helps with tracing, but it doesn't change the picture: this is still the same gateway-side rejection as #56334. The free-tier check runs in the hosted gateway, and only the team can look up a request by its ID.
Please include it in your email to help@anoma.ly, together with the IDs and times from #56334:
73cae486-db4a-4b5f-9bc4-a72c77634d00(POST /inference/openai/v1/chat/completions, 403). Mention that the Console showedOct 17, 2026, 05:37:32without a timezone, so the team doesn't misread it.x-opencode-log-idandcf-rayfrom Free-tier 403 is network-dependent in official 2.0.32 and 1.18.35 clients #56334, and the UTC times from this issue (06:52, 06:57:52 and 07:15:46).Please keep public IPs and account details for the email only, not GitHub.
This issue is still marked as a duplicate of #56334, so tracking continues there and in the email. The bot will close this one as planned unless you reply explaining how the problem differs from #56334.
opencode-agent commentedon Oct 18, 2026
Closing this as a duplicate of #56334, your earlier report of the same 403
FreeTierErrorthat happens on your home network but not on a hotspot. We haven't heard how this one differs.The rejection comes from the hosted gateway, so the team will have to look into it. To help them, email help@anoma.ly with the Console request ID (
73cae486-db4a-4b5f-9bc4-a72c77634d00), thex-opencode-log-idandcf-rayfrom #56334, and the UTC timestamps. Keep public IPs and account details in the email, not on GitHub. If it turns out to be a different problem, reply here and we can reopen it.