Environment
- OS: Windows 11 LTSC 10.0.26100
- OpenCode version: 1.15.13 (
opencode.cmd --version)
- UI: GUI / web renderer
- Provider/model observed: OpenAI GPT model (
openai / gpt-5.5 in the affected local session)
- Notes: I have seen this most often with GPT-family models in the GUI/web UI. In my usage it is easy to hit in long-running sessions across recent GUI/web builds, but the concrete session I inspected was on 1.15.13.
What I actually observed
In a long-running GUI/web session, after many normal conversation turns and tool calls, I sent another normal prompt. The exact prompt content did not seem special; this happened while continuing ordinary coding/debugging work in an already large session.
The assistant turn then ended with no visible output:
- no assistant text
- no tool call
- no patch
- no visible error or warning in the UI
From the user's point of view, the session looked stuck or dead. It appeared as if the session could no longer continue the conversation.
Concrete reproduction shape
I cannot make it happen on the first prompt in a fresh session, but I can reproduce the failure shape easily in the GUI/web UI with long sessions, especially with GPT models:
- Open OpenCode GUI/web UI.
- Use an OpenAI GPT model.
- Keep a session running for a long time with many normal prompts and tool calls, so the conversation becomes large.
- Send another ordinary prompt after the session is already large.
- Sometimes the assistant turn ends silently with no text, no tool call, and no patch.
- The UI does not show a clear error, so the session appears unable to continue.
- Run
/undo one or more times, or run /compact.
- The same session can often continue responding again afterward.
Actual result
OpenCode silently accepts the empty assistant turn as if the turn completed. There is no clear error and no obvious recovery instruction.
This is the main bug I am reporting: an empty model/provider response should not be swallowed silently.
Expected result
If the model/provider returns an empty assistant response with no text, no tool call, and no patch, OpenCode should surface that as an error instead of silently ending the turn.
If the session is near a context limit, OpenCode should either trigger compaction or report a clear compaction/context error so the UI or automation can react.
If compaction itself fails, that failure should also be shown clearly. It should not look like the assistant simply stopped replying.
Recovery I observed
The session was not permanently broken. After the silent empty turn, I was able to recover the same session by using multiple /undo commands or by running /compact.
That is why I suspect this is related to context pressure or compaction: reducing or rewinding the session lets the conversation continue.
Why this matters
For users, the failure looks like the whole session is broken. For automation or multi-agent workflows, the same silent empty turn can cause retries or repeated compaction attempts because there is no explicit error signal to react to.
The minimal expected fix is: do not silently pass an assistant response that contains no text, no tool call, and no patch. Surface a deterministic error, and if context pressure is detected, allow the normal compaction/recovery path to run.
Environment
opencode.cmd --version)openai/gpt-5.5in the affected local session)What I actually observed
In a long-running GUI/web session, after many normal conversation turns and tool calls, I sent another normal prompt. The exact prompt content did not seem special; this happened while continuing ordinary coding/debugging work in an already large session.
The assistant turn then ended with no visible output:
From the user's point of view, the session looked stuck or dead. It appeared as if the session could no longer continue the conversation.
Concrete reproduction shape
I cannot make it happen on the first prompt in a fresh session, but I can reproduce the failure shape easily in the GUI/web UI with long sessions, especially with GPT models:
/undoone or more times, or run/compact.Actual result
OpenCode silently accepts the empty assistant turn as if the turn completed. There is no clear error and no obvious recovery instruction.
This is the main bug I am reporting: an empty model/provider response should not be swallowed silently.
Expected result
If the model/provider returns an empty assistant response with no text, no tool call, and no patch, OpenCode should surface that as an error instead of silently ending the turn.
If the session is near a context limit, OpenCode should either trigger compaction or report a clear compaction/context error so the UI or automation can react.
If compaction itself fails, that failure should also be shown clearly. It should not look like the assistant simply stopped replying.
Recovery I observed
The session was not permanently broken. After the silent empty turn, I was able to recover the same session by using multiple
/undocommands or by running/compact.That is why I suspect this is related to context pressure or compaction: reducing or rewinding the session lets the conversation continue.
Why this matters
For users, the failure looks like the whole session is broken. For automation or multi-agent workflows, the same silent empty turn can cause retries or repeated compaction attempts because there is no explicit error signal to react to.
The minimal expected fix is: do not silently pass an assistant response that contains no text, no tool call, and no patch. Surface a deterministic error, and if context pressure is detected, allow the normal compaction/recovery path to run.