Skip to content

[Bug]: Session message tail disappears mid-generation on v0.13.10 stable (regression of #1747) #1844

@MariusWilsch

Description

@MariusWilsch

Symptom

Message tail disappears from the visible chat during or shortly after agent generation. The bug occurs spontaneously on active sessions — no navigation, minimization, or browser close required to trigger it. Hard reload of the page restores the full message history, confirming server-side persistence is intact. This is the same surface as #1747 ("Last 2 messages disappear from chat thread"), which appears to remain unfixed despite multiple fix attempts.

Versions tested — bug persists across all

Version Released Fix targeting this surface Status
v0.13.4 / v0.13.5 2026-05-07 / 2026-05-08 (original report on #1747) Bug present
v0.13.6 2026-05-12 #1749 "preserve live session state" + #1750 "preserve live tail messages" (claims to close #1747) Bug persists per @platem 2026-05-13
v0.13.7 / v0.13.8 2026-05-13 (no further session-render fixes) Bug persists per @platem 2026-05-13
v0.13.9 2026-05-15 #1801 "coalesce streaming transcript deltas" (pure perf, no behavior) Not directly tested
v0.13.10 stable 2026-05-18T18:19Z #1824 "Fix session transcript reconciliation" + #1831 "harden session streaming and server health" Bug still reproduces 2026-05-19

Five fix attempts shipped over the past 8 days targeting this exact surface. The bug continues to manifest on v0.13.10 stable.

Reproduction

Hit during a witness walk on a self-hosted OpenWork web deployment pinned to v0.13.10 stable (commit 1cdd52d7d3c13d25c3afe1bb72be54e7107d3c78). The bug is intermittent — not every generation triggers it — but appears reliably across multiple walks. Specific session captured today: ses_1c1968690ffepavaBLDwmYq4r1.

Approximate steps:

  1. Open a session in the self-hosted web deployment, ensure agent is configured with skills/MCPs.
  2. Submit a user message, let the agent generate a multi-part response (with tool calls + final text).
  3. Continue the conversation across 3–5 message exchanges.
  4. Observe — at some point during or shortly after a generation completes, prior messages in the tail vanish from the visible chat without user action.

Sometimes the disappearance is partial (last 2 messages absent, like the original #1747 framing), sometimes it leaves only the first agent message visible. Server-side state has been verified intact across multiple walks via direct inspection of /data/opencode/storage/session_diff/ses_*.json — the data is always present on the server; the SPA's render of it is what loses messages.

Expected behavior

Messages persist in the visible chat once written. Stream completion does not cause prior tail messages to vanish.

Actual behavior

Message tail vanishes from the rendered chat. Hard reload of the page restores the full history (confirming the loss is purely in the SPA's render layer, not in any persisted state).

Bounded evidence

Layer State Verified
Server-side session storage Has full history ✅ Walk-6 verified via docker exec ... cat /data/opencode/storage/session_diff/ses_1de8beeb*.json
SPA render (DOM) Missing tail messages ✅ Witnessed multiple sessions across multiple walks
Hard reload Restores full history ✅ Reload from server snapshot brings everything back
HTTP snapshot response (Network tab) Not yet captured ❌ Will capture on next repro if helpful
React Query transcript cache (DevTools) Not yet inspected ❌ Will capture on next repro if helpful

Environment

  • Deployment: Self-hosted OpenWork web (Caddy + pnpm build:web of @openwork/app)
  • Browser: Chromium-based (Playwright agent-browser driver, also reproduced manually in standalone Chrome)
  • Pin: OpenWork SPA at v0.13.10 stable (1cdd52d7d3c13d25c3afe1bb72be54e7107d3c78), orchestrator at openwork-orchestrator@0.13.3 (npm)
  • Session protocol: Server-side session-diff storage, SSE event stream, snapshot-based hydration via getSessionSnapshot

Note on orchestrator version: we are currently running openwork-orchestrator@0.13.3 while the SPA is at v0.13.10. This may or may not be relevant — the prior fix-set (#1749, #1750, #1824, #1831) is all SPA-side, so a version-aligned orchestrator should not change behavior. Flagging the drift for completeness.

Distinct from cold-cache rehydration

For clarity: this bug is not about closing the browser and revisiting the session URL. Browser close + revisit is one of the recovery paths users have used to attempt to surface the messages back; sometimes it works (as the cache rehydrates from server snapshot), sometimes it does not. The bug itself is the spontaneous mid-generation or post-generation tail disappearance on active sessions.

Distinct from #1747?

Believed to be the same root cause as #1747 — the title of #1747 ("Last 2 messages disappear from chat thread") matches this surface precisely. #1747 was closed with #1750 as the claimed fix, then re-confirmed unresolved by @platem on 2026-05-13 on v0.13.8. Filing this as a fresh tracker rather than reopen-request so it has explicit v0.13.10-stable evidence + the multi-fix-attempt history that the closed #1747 thread doesn't surface.

Collaboration

Happy to capture HTTP snapshot response + DOM message count + React Query transcript cache state next time the bug reproduces, if maintainers want pinpointed data on which layer drops the messages. Will also re-test on each v0.13.11-alpha drop and update if anything changes.

References

Metadata

Metadata

Assignees

No one assigned

    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