-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
[Bug]: Control UI webchat session silently resets after network disconnect / sleep — previous session file renamed to .jsonl.reset.* and lost from sessions tab #87700
Copy link
Copy link
Closed
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingSomething isn't workingbug:behaviorIncorrect behavior without a crashIncorrect behavior without a crashclawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Description
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingSomething isn't workingbug:behaviorIncorrect behavior without a crashIncorrect behavior without a crashclawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.ClawSweeper found an open linked pull request for this issue.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.ClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.ClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.ClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.Channel message delivery can be lost, duplicated, or misrouted.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.Good issue quality with a plausible reproduction path needing some confirmation.
Type
Fields
Priority
None yet
Bug type
Behavior bug (incorrect output/state without crash)
Beta release blocker
No
Summary
When the host machine (MacBook Pro - Nov 2023 - Chip Apple M3 Max - MacOS Sequoia v15.7.1) goes to sleep or loses internet connectivity and comes back, the OpenClaw Control UI webchat appears to still show the ongoing conversation — but when I type a new message, the session silently resets. All previous messages disappear, the old .jsonl session file is renamed to {id}.jsonl.reset.{timestamp}, and the previous session is no longer visible in the sessions tab. I did not reload, navigate, or deliberately start a new session.
Note: I am running the OpenClaw Gateway in Docker and access the Control UI via localhost from Chrome.
Steps to reproduce
git clone https://github.com/openclaw/openclaw cd openclaw git checkout 01dda73e9bb1ecb787e2762612fc3bb586d731a0 ./scripts/docker/setup.shOpen the Control UI webchat on localhost using the Chrome browser
Exchange several messages with the agent.
Put the Mac to sleep (or disconnect from the internet).
After some time, wake the Mac / reconnect.
The webchat UI appears to still show the ongoing conversation.
Type a new message and send it
The UI instantly clears all previous messages as if a fresh session started.
Check ~/.openclaw/agents/main/sessions/ — the previous session's .jsonl file has been renamed to {id}.jsonl.reset.{timestamp} but the session is not visible in the UI sessions's tab.
Expected behavior
The session should resume normally after reconnection without data loss. The .jsonl file should remain at its original path and the session should stay visible in the sessions tab.
Actual behavior
The session is silently reset on the next message after a sleep/disconnect cycle. The old session file is renamed to a .jsonl.reset.* suffix, making it invisible to the sessions tab. The data is preserved on disk but cannot be browsed or resumed through the UI.
OpenClaw version
v2026.5.5
Operating system
macOS (host) → Linux (Docker container, arm64)
Install method
Docker (from GitHub repo)
Model
openrouter/deepseek/deepseek-v4-flash
Provider / routing chain
openclaw -> openrouter -> deepseek/deepseek-v4-flash
Additional provider/model setup details
No response
Logs, screenshots, and evidence
Impact and severity
Affected: Control UI webchat users on any platform that may experience sleep/disconnect cycles (laptops, remote connections, unstable networks)
Severity: Medium (workflow interruption — lose access to conversation history via the UI, cannot resume)
Frequency: Every sleep/disconnect cycle that's long enough to trigger the reset
Consequence: Users lose conversation continuity. Previous sessions disappear from the sessions tab. Data is intact on disk but requires manual file-level recovery.
Additional information
The mechanism appears to be that the webchat re-establishes its WebSocket/SSE connection after waking, but instead of rejoining the existing session, it initialises a fresh one — which triggers the session lifecycle code to rename the previous session file. Key observations: