#680·flue

Abandoned assistant messages from earlier submissions block new input

Author: astrobot-houstonCreated Sep 12, 2026Updated Sep 12, 2026

Originally reported by @zvsdev in #675.

All community-submitted pull requests are automatically converted to issues (bugs) & discussions (feature requests, enhancements) where they can be triaged and prioritized. Once prioritized, a PR implementation is created automatically.

Describe the Bug

When an earlier submission leaves an open assistant message behind a later conversation tail, and the dispatch row for that submission is settled but its stream settlement is unavailable, the next input into the conversation fails. The conversation writer does not clear these verified abandoned messages before processing new input, causing subsequent prompts to error out even though the earlier dispatch has already been resolved.

This affects all persistence adapters (SQLite, libSQL/Postgres/MySQL, MongoDB, and Redis) and occurs in the default conversation within the runtime's conversation writer (packages/runtime/src/conversation-writer.ts).

Expected Behavior

When a previous submission has left an abandoned assistant message in the conversation and its dispatch is already settled, new input should succeed. The runtime should detect and clear verified abandoned messages before processing the next input, preserving completed entries, raw history, tool results, and the active conversation tail.

Steps to Reproduce

  1. Submit input to an agent session so that the submission begins producing an assistant message.
  2. Allow the dispatch row for that submission to settle, but arrange for its stream settlement to become unavailable (e.g., an interrupted or crashed streaming response), leaving an open assistant message behind the conversation tail.
  3. Submit new input to the same agent session and observe that the input fails.

Original implementation from #675 by @zvsdev