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
When using opencode/big-pickle (the built-in opencode provider), intermittent AI_APICallError: Internal server error (500) responses cause the agent to silently stop responding. The user sees the spinner ("thinking...") for a while, then the flow cuts with no output, no error message, and no indication anything went wrong.
From the logs, I can see the client retries internally (multiple stream error entries followed by new stream attempts), but after exhausting retries it silently drops the response instead of surfacing the error to the user.
Log evidence
Here's a sample from ~/.local/share/opencode/log/opencode.log:
Description
When using
opencode/big-pickle(the built-in opencode provider), intermittentAI_APICallError: Internal server error(500) responses cause the agent to silently stop responding. The user sees the spinner ("thinking...") for a while, then the flow cuts with no output, no error message, and no indication anything went wrong.From the logs, I can see the client retries internally (multiple
stream errorentries followed by newstreamattempts), but after exhausting retries it silently drops the response instead of surfacing the error to the user.Log evidence
Here's a sample from
~/.local/share/opencode/log/opencode.log:This pattern repeats 3-6+ times per user message. Sometimes it eventually succeeds, sometimes it silently fails.
Key observations
small=truepath (title agent) shows a visible retry error (AI_RetryError: Failed after 3 attempts)small=falsepath (build/main agent) fails silently — no error shown to the userchunkTimeoutis configured for theopencodeprovider — onlyopenrouterhas one in my configEnvironment
opencode/big-pickleopencodeproviderExpected behavior
When the provider returns a 500 error and retries are exhausted, opencode should:
Workaround
Adding
provider.opencode.options.chunkTimeoutmay help with silent stalls, but doesn't address the 500 error handling.