Skip to content

session.error events are ignored by global sync (stuck busy, no error shown) #48530

Closed

Description

@CannonRS

Description

A failed session turn is not reflected in the UI's session state and produces no visible error.

When the server emits a session.error event, the global sync reducer ignores it. The session stays in its last non-idle status (busy) and the failed assistant message keeps no error marker, so the user is not told that the turn failed.

Plugins

n/a

OpenCode version

latest dev

Steps to reproduce

  1. Trigger a session that fails with an error event.
  2. The session status stays busy and no error toast appears; the last assistant message does not get an error marker.

Screenshot and/or share link

n/a

Operating System

n/a (all)

Terminal

n/a

Activity

  1. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

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

  2. CannonRS commented on Sep 11, 2026

    @CannonRS
    Author

    Not a duplicate of #42259 or #32366; both are related but describe different layers.

    #42259 is a server-side event-ordering problem: \session.error\ is published after \session.status idle, so UI consumers that stop processing on idle never render the error. Its fix (PR #42253) reorders the SSE stream and does not touch the client-side global sync reducer.

    #32366 is a desktop 'stuck on thinking' case after a dropped stream (no state recovery, no retry), a different symptom and environment.

    This issue (#48530) is the client-side counterpart: when a \session.error\ event reaches the store, the global sync reducer (\�pplyDirectoryEvent) ignores it — the session status stays busy, the last assistant message gets no error marker, and no toast is shown. The fix is purely in \�vent-reducer.ts\ / \server-sync.tsx; even with correct server ordering the reducer must first handle the event. The companion PR #48534 touches no file that #42253 touches.

  3. neriousy commented on Oct 20, 2026

    @neriousy
    Member

    Thanks for reporting this! Session failures now return the session to idle and display the failure in the desktop conversation, with the error-display fix first released in 2.0.27. Update with opencode upgrade or npm i -g @opencode/cli@latest (desktop: update the app). Please reopen or comment if a failed session still stays busy or hides its error on that version.

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