Skip to content

[BUG] Desktop: conversation freezes mid-"thinking", no error, must abort and resend — missing watchdog/retry UX #41365

Open

Description

Description

On the Windows desktop app, quite often — especially with models that do long/reasoning "thinking" (e.g. OpenAI/DeepSeek-style reasoning dumps) — the conversation freezes mid-thinking: the agent is stuck in "thinking" state, spinner/tool call never resolves, and no output arrives.

The only workaround is to abort/terminate the conversation and resend the message (losing the reasoning context), which is disruptive for long debugging tasks.

Details of the bug

  1. User sends a prompt (sometimes after long thinking, sometimes right at start).
  2. Client shows "thinking…" (or the thinking block dumps) indefinitely; the stream silently stops; no error toast.
  3. UI (desktop) is stuck; user must hit the abort/stop button and resent the exact same prompt; then it usually works — pointing to a transient stream/connection race, not the model being slow.

Associated issues (other symptoms, same "thinking stuck" family)

Suggested improvements

  1. Watchdog / timeout on the thinking phase: if no chunks received for N seconds (e.g. 60s), surface an explicit error/info banner ("model hasn't responded; retry?") and offer "retry with cached thinking".
  2. Recover stuck turn automatically: detect stuck state and prompt user "Retry / discard and re-ask" instead of silently dangling.
  3. Show provider error in the UI (many of these are provider 5xx/empty chunk cases): single toast for "provider error, auto-retried".
  4. Non-lossy retry: when user aborts+resends, keep the previous reasoning/tool output as context so the retry isn't blind.

This is a frequent occurrence (dozens of similar reports) and the UX cost is high for long sessions.

Activity

  1. github-actions commented on Aug 9, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    If your issue is specifically about the missing watchdog/timeout UX and retry mechanism (rather than just the stuck-thinking symptom), it may be worth keeping open as a feature/UX request. Otherwise, please consider commenting on one of the above.

  2. liudongyan13701205717-source commented on Aug 9, 2026

    @liudongyan13701205717-source
    Author

    The auto-bot listed #36370 / #32366 / #38644 as possible duplicates — those cover the symptom (stuck "thinking", silent stream drop, provider errors not surfaced). This issue's distinct value is the UX/proposal side: a watchdog + timeout + explicit retry-with-cached-thinking UX, i.e. (1) detect a stalled turn, (2) offer "retry / discard and re-ask" instead of silent hanging, (3) keep reasoning context on retry. That's a feature request that complements the bug reports, not a duplicate. If maintainers prefer, I can reduce this to just the watchdog/retry spec and let the bug reports own the diagnosis.

  3. mcj777 commented on Aug 14, 2026

    @mcj777

    Freeze at ~14% context fill — same "thinking stuck" family, with log evidence

    Environment: Windows 11, OpenCode v1.18.18 desktop (local sidecar server), DeepSeek V4 Pro via API, 1M context window, reasoningEffort: max.

    Symptom: when a session reaches ~14% context fill (~140K input tokens), the chat and permission dialogs freeze (red server indicator). No error in UI, nothing in the log — the stream to deepseek-v4-pro goes completely silent (20 min in my last capture), followed by Aborted after a manual Esc. No crash, no dumps. It self-recovers after 5–30 min, or after Esc → resend.

    What makes this case notable: it reproduces across different sessions at the same context fill percentage (~14%), suggesting the stall correlates with accumulated context size, not just long reasoning. Same family as #37609 / #36370 / #38951, but with a measurable trigger threshold.

    Workarounds confirmed: Esc → resend succeeds; starting a new session before ~100K tokens prevents the freeze.

  4. liudongyan13701205717-source commented on Aug 14, 2026

    @liudongyan13701205717-source
    Author

    @mcj777 thanks for the detailed repro — the ~14% context-fill threshold is a great new data point.

    This is the same "stuck thinking / silent stream drop" family as #36370, #32366, #38644, #37609, #38951 — but your capture adds something the others lack: a reproducible trigger threshold (~14% / ~140K input tokens on a 1M window), which points at accumulated-context-size handling rather than just long-reasoning or a one-off provider error.

    Where this issue stays distinct (and worth keeping open alongside those bug reports): the UX gap — there's no watchdog, no stall timeout, and no explicit "retry / discard-and-re-ask" affordance when a turn silently hangs. Today the only recovery is a manual Esc → resend that throws away reasoning context. A minimal, high-value fix would be:

    1. detect a stalled turn (no token / no SSE event for N seconds past the model's typical first-token latency),
    2. surface it as a recoverable state with "Retry" / "Discard & re-ask" instead of a silent hang,
    3. preserve reasoning context across the retry.

    The diagnosis belongs to the bug issues; the watchdog/retry UX is the feature request here. Boosting visibility for both.

  5. liudongyan13701205717-source commented on Aug 27, 2026

    @liudongyan13701205717-source
    Author

    I can reproduce the mid-"thinking" freeze on my end as well. Happy to provide local repro logs / context size at freeze time if it helps narrow down the ~14% context trigger mcj777 identified.

  6. liudongyan13701205717-source commented on Aug 30, 2026

    @liudongyan13701205717-source
    Author

    跟进:目前已有两名真实用户复现——mcj777(~14% 上下文填充 ~140K token 阈值触发冻结,跨会话可复现)和我方(Windows Desktop)。症状归属 #36370/#32366/#37609/#38951 等 bug 报告,本 issue 的价值在于非诊断侧:watchdog + 停顿检测 + 显式"重试/丢弃重问"UX,且保留推理上下文重试。

    诉求小结(也可作为最小可评审规格):

    1. 检测停滞回合(超时无 token/SSE 且超过模型首 token 延迟),
    2. 以可恢复状态呈现,给"重试 / 丢弃并重问"而非静默挂起,
    3. 重试时保留已产生的推理上下文。

    维护者若有排期或需补充规格细节,请指示。愿意提供本地复现日志/冻结时的上下文大小。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions