Repository navigation
Description
Description
Free-tier Console models (opencode/<model>-free) fail with
403 FreeTierError: "OpenCode's free tier can only be used from within OpenCode."
when the machine is connected to one specific network, while the same OpenCode
client, same account, and same commands succeed minutes apart from a different
network. The error is not the documented quota shape (no 429, no
Free usage exceeded, add credits, no Retry-After), and the account's free
usage is small, so this does not look like quota exhaustion.
Network A (fails): KDDI / au PPPoE line, public IP 59.138.151.215
(kd059138151215.ppp-bb.dion.ne.jp), SSID "SNTL".
Network B (works): phone tethering, AS131910 SORACOM, public IP 150.91.247.74,
SSID "0Re0さんのZ Fold7".
The failure reproduced twice on network A, and success reproduced once on
network B, by switching networks back and forth with no other changes. Raw HTTP
(no OpenCode client) is 403 from both networks as expected, but on network A the
official client is rejected too, which should not happen.
Plugins
none
OpenCode version
2.0.28 (channel: latest)
Bundled CLI used for the repro:
...\@opencodedesktop\resources\opencode-cli.exe (v2.0.28).
Note: the opencode on PATH on this machine is a V1 build (1.18.35) that cannot
read the V2 database; all tests above were run with the V2 CLI above.
Steps to reproduce
- Connect the machine to network A (public IP
59.138.151.215). - Run
opencode run --model opencode/deepseek-v4.1-flash-free "Reply with exactly: ok". - Observe exit code 1 and
Error: OpenCode's free tier can only be used from within OpenCode. - Switch to network B (public IP
150.91.247.74) and run the same command. - Observe success (stdout
ok). - Switch back to network A and run it again: failure returns.
Expected
Free models usable from any network, or at least an error that states the actual
cause (IP/ASN block, per-IP free quota, client check) with a reset hint.
Actual
403 FreeTierError with "OpenCode's free tier can only be used from within OpenCode" even though the request comes from the official client with a stored
Console account.
Affected free models on network A (all 403 FreeTierError):
deepseek-v4.1-flash-free, glm-5.3-flash-free, big-pickle, mimo-v2.6-flash-free,
space-bunny-free, longcat-2.5-preview-free, nemotron-3-ultra-free,
nemotron-3.5-lightning-free.
Same models on network B: all succeeded except nemotron-3-ultra-free,
which failed separately with [503] Upstream error from Nvidia: Service temporarily overloaded (unrelated).
Go models (opencode-go/beam-free, opencode-go/deepseek-v4.1-flash) succeed on
both networks, so the client and credentials work from network A as well.
Screenshot and/or share link
Unavailable
Operating System
Windows 11 (Windows_NT 10.0.26200)
Terminal
PowerShell 5.1 / Windows Terminal (also reproduced with raw curl.exe)
Additional context
x-opencode-log-idfor a raw HTTP 403 on network A:
c580b8cc-395f-4ba9-a9c8-159300579b9f(2026-10-17T12:58:59Z, Cloudflare edge
-SEA).- Timeline (2026-10-17, UTC), from the local opencode log:
- 12:50-12:51 failures (user's own attempts, network A)
- 12:57-13:04 failures (tests, network A; raw HTTP and CLI)
- 13:05-13:08 successes (network B, same CLI/account)
- 13:18 failures again (network A)
- No VPN or proxy on the machine (WinHTTP direct;
HTTP(S)_PROXYunset). - IPv6 is not the cause:
curl -6cannot reach opencode.ai from network A;
all traffic egresses over IPv4 (172.65.90.x). - The raw HTTP body is identical from both networks for unauthenticated
requests, so the 403 message itself does not distinguish "not the client"
from any network-level decision. - Questions: is the free tier gated on IP/ASN reputation or a per-IP free quota?
Can the error message expose the actual scope (account / IP / model) and a
reset hint, like the 429 path does?
Activity
opencode-agent commentedon Oct 17, 2026
Thanks for the careful network A/B comparison, @0Re0-8192. I think this is a duplicate of #56334, which reports the same thing: the official client and account get a 403
FreeTierErroron free models from one network, work from another network, and fail again after switching back. A commenter there also traced it to the exit IP.Possible duplicates and related issues, ordered from most to least likely:
FreeTierErrorare reported as "Authentication required" to ACP clients (related to the request for a clearer error)The free-tier check runs in the hosted OpenCode Zen gateway, not in the app, so only the team can see why a given network is rejected. If you'd like it looked at for your line, email help@anoma.ly with your
x-opencode-log-id(c580b8cc-395f-4ba9-a9c8-159300579b9f), the timestamps and the public IP of the network that fails. Please send those by email and keep any further account details out of this public issue.The bot will close this issue as a duplicate in 1 day unless you reply explaining how your problem is different.
nimao33 commentedon Oct 17, 2026
pls produce fix instead of saying this is a duplicate
opencode-agent commentedon Oct 18, 2026
Closing this as a duplicate of #56334, since there hasn't been a reply saying how this is different. That issue tracks the same problem: free models get a 403
FreeTierErroron one network, while the same official client and account work on another. Please follow #56334 for updates.The free-tier check runs in the hosted OpenCode Zen gateway, not in the app. If you'd like the team to check why your network is rejected, email help@anoma.ly with your
x-opencode-log-id(c580b8cc-395f-4ba9-a9c8-159300579b9f), the timestamps and the public IP of the network that fails. If your problem turns out to be different, reply here and we can reopen it. Thanks again for the thorough report.