Skip to content

Silent empty assistant response makes long GUI sessions appear stuck #30411

@askforoneZY

Description

@askforoneZY

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:

  1. Open OpenCode GUI/web UI.
  2. Use an OpenAI GPT model.
  3. Keep a session running for a long time with many normal prompts and tool calls, so the conversation becomes large.
  4. Send another ordinary prompt after the session is already large.
  5. Sometimes the assistant turn ends silently with no text, no tool call, and no patch.
  6. The UI does not show a clear error, so the session appears unable to continue.
  7. Run /undo one or more times, or run /compact.
  8. 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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions