You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I put {"providers":{"opencode-go":{"settings":{"baseURL":"http://127.0.0.1:18931/v1"}}}} in ~/.config/opencode/opencode.jsonc, set a dummy key in OPENCODE_API_KEY, and ran opencode run --model opencode-go/<model> hi with a local server logging every request. opencode debug config showed the setting was loaded. Still, every run failed with Upstream request failed: Invalid credential from opencode.ai, and the local server got no requests. I tried deepseek-v4.1-flash, minimax-m3 and gpt-5.6-luna on 2.0.31, and it happens the same way on the latest dev (83c5abbbe).
It also happens on 2.0.25. The likely reason (not yet confirmed) is a change in the model catalog OpenCode downloads, not in OpenCode itself. The catalog now gives each Go model its own endpoint, and that overrides the provider-level baseURL from your config. That would explain why it used to work.
The script below reproduces it. Note that it writes to your global opencode.jsonc and saves any existing one as opencode.jsonc.bak.
Activity
opencode-agent commentedon Oct 16, 2026
Thanks for the report, I can reproduce this.
I put
{"providers":{"opencode-go":{"settings":{"baseURL":"http://127.0.0.1:18931/v1"}}}}in~/.config/opencode/opencode.jsonc, set a dummy key inOPENCODE_API_KEY, and ranopencode run --model opencode-go/<model> hiwith a local server logging every request.opencode debug configshowed the setting was loaded. Still, every run failed withUpstream request failed: Invalid credentialfrom opencode.ai, and the local server got no requests. I trieddeepseek-v4.1-flash,minimax-m3andgpt-5.6-lunaon 2.0.31, and it happens the same way on the latestdev(83c5abbbe).It also happens on 2.0.25. The likely reason (not yet confirmed) is a change in the model catalog OpenCode downloads, not in OpenCode itself. The catalog now gives each Go model its own endpoint, and that overrides the provider-level
baseURLfrom your config. That would explain why it used to work.The script below reproduces it. Note that it writes to your global
opencode.jsoncand saves any existing one asopencode.jsonc.bak.Related (not the same problem): #54370, #55984, #54833.
Reproduction script (repro.sh)
Run it:
bash repro.sh