Repository navigation
Open
Labels
P0Emergency: data loss, security bypass, crash loop, or unusable core runtime.Emergency: data loss, security bypass, crash loop, or unusable core runtime.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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:auth-providerThis issue is about auth, provider routing, model choice, or SecretRef resolution.This issue is about auth, provider routing, model choice, or SecretRef resolution.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.This issue is about crashes, hangs, restart loops, or process-level availability.impact:ux-release-blockerA non-technical user is blocked without terminal, logs, config, or support.A non-technical user is blocked without terminal, logs, config, or support.issue-rating: 🦪 silver shellfishThin issue quality; more reproduction proof or environment detail is needed.Thin issue quality; more reproduction proof or environment detail is needed.stale
Description
Summary
OpenClaw Companion (Windows Hub) becomes unresponsive ("not responding") right after connecting to a remote Gateway, and stays that way across restarts. While it is hung, tray menu items such as Companion Settings… do nothing, so node mode cannot be configured or repaired from the UI.
Environment
- Windows Hub: 2026.9.8-1 (x64, Windows 11)
- Gateway: 2026.9.7 on macOS, protocol 4, auth mode token
- Connection: remote Gateway over Tailscale Serve (
wss://<host>.ts.net, tailnet-only, valid Let's Encrypt cert), paired with a setup code fromopenclaw qr --setup-code-only --url wss://… - Setup choices: Advanced → existing Gateway, capabilities preset Balanced, model "Current model"
Timeline (from %LOCALAPPDATA%\OpenClawTray\Logs\diagnostics.jsonl + Gateway log)
- 12:26
app.start nodeMode=false→ Connected, healthy. Operator device pairing approved on the Gateway (openclaw devices approve). Setup wizard completes ("Your AI is ready"). - 12:39
app.start nodeMode=true(turned on by the Balanced preset). Node clientWindows Node (BSH-OFFICE) node v2026.9.8-1 role=node auth=bootstrap-tokenis rejected by the Gateway every reconnect:reason=bootstrap_token_invalid(the setup code had already been redeemed by the operator connection). App becomes "not responding". - User ends the task and reopens: still hung.
nodeModeset tofalseby hand in%APPDATA%\OpenClawTray\settings.json, app reopened at 13:07: the node retries stop, and the operator connection succeeds (health,agents.list,node.listOK).chat.historyreturns in about 1.35 s for a very large, long-running main session (months of messages and tool output). Twousers.selfcalls fail withFORBIDDEN … requires an authenticated useron every connect. The UI is still frozen, and Companion Settings does nothing.
Expected
- The app stays responsive when node bootstrap auth fails. It should show a pairing or repair prompt instead of hanging.
- The setup wizard should not reuse an already-redeemed setup code for node mode. Either mint or request a node credential, or tell the user a second code is needed.
- Loading a very large chat history should not block the UI thread. Paginate, or lazy-load the history.
- A failing
users.self(FORBIDDEN) should not block startup.
Workaround in use
The browser Control UI works over the same Tailscale Serve URL. Node mode is not usable.
Happy to provide more logs, or test a build.
Reacted by clawsweeper
Metadata
Metadata
Assignees
Labels
P0Emergency: data loss, security bypass, crash loop, or unusable core runtime.Emergency: data loss, security bypass, crash loop, or unusable core runtime.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.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:auth-providerThis issue is about auth, provider routing, model choice, or SecretRef resolution.This issue is about auth, provider routing, model choice, or SecretRef resolution.impact:crash-loopThis issue is about crashes, hangs, restart loops, or process-level availability.This issue is about crashes, hangs, restart loops, or process-level availability.impact:ux-release-blockerA non-technical user is blocked without terminal, logs, config, or support.A non-technical user is blocked without terminal, logs, config, or support.issue-rating: 🦪 silver shellfishThin issue quality; more reproduction proof or environment detail is needed.Thin issue quality; more reproduction proof or environment detail is needed.stale
Type
Fields
Priority
None yet
Projects
- StatusShow more project fieldsBacklog
Activity
clawsweeper commentedon Oct 13, 2026
Codex review: this still needs some work.
Summary
Keep open: released-build startup hangs are independently corroborated, and neither current main nor the open candidates establish that the freeze and inaccessible Settings are fixed.
Reproducibility: Released-build failure is credibly corroborated, including recovery by changing only the chat surface, but this read-only review establishes no high-confidence current-main reproduction and ran no builds or tests.
Next step
Capture current-build UI-thread samples and the redacted node rejection envelope, then select the repair and provide a visible safe-start recovery button.
Review details
Best possible solution:
Restore responsive native chat and offer visible pairing repair or safe-start recovery without clearing conversations.
Do we have a high-confidence way to reproduce the issue?
Released-build failure is credibly corroborated, including recovery by changing only the chat surface, but this read-only review establishes no high-confidence current-main reproduction and ran no builds or tests.
Is this the best way to solve the issue?
Trace native navigation and rendering before selecting pagination or retry guards: small-history failures and the existing detached layout handler weaken those proposed explanations, while pairing needs separate protocol evidence.
AGENTS.md: found and applied where relevant.
Remaining risk / open question:
Codex review notes: model internal, reasoning medium; reviewed against ed1444b0de69.
Label changes
Label changes:
issue-rating: 🦪 silver shellfish: Current issue advisory state selects this label.issue-rating: 🦐 gold shrimp: Current issue advisory state no longer selects this label.clawsweeper:needs-info: Current issue advisory state no longer selects this label.Label justifications:
P0: Reported first useful run persistently freezes Companion and makes Settings unreachable, requiring external intervention.impact:ux-release-blocker: Confirmed recovery requires closing the process and editing settings outside the app.impact:crash-loop: Startup restoration reportedly leaves the desktop process unresponsive across restarts.impact:auth-provider: The report and corroborating discussion describe rejected setup credentials and unusable node pairing.Evidence reviewed
Acceptance criteria:
What I checked:
src/OpenClaw.Tray.WinUI/Chat/ReactorItemsViewScrollController.cs:269, ed1444b0de69)src/OpenClaw.Tray.WinUI/Chat/ChatHistoryLoader.cs:339, ed1444b0de69)src/OpenClaw.Shared/WindowsNodeClient.cs:1182, ed1444b0de69)tests/OpenClaw.Tray.Tests/ChatTimelinePresentationTests.cs:85, ed1444b0de69)Likely related people:
src/OpenClaw.Connection/BootstrapTokenLifecycle.cs)How this review workflow works
@clawsweeper re-reviewcomments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.@clawsweeper re-reviewor@clawsweeper re-runon an open PR or issue to request a fresh review only.@clawsweeper reviewto request a fresh review only.@clawsweeper explainto ask for more context, or@clawsweeper stopto stop active automation.Reviewed October 26, 2026, 7:59 PM ET / 23:59 UTC.
chestercs commentedon Oct 18, 2026
Same symptoms here on newer builds, plus a workaround that unblocked us.
Environment
wss://through a TLS reverse proxy (nginx, WebSocket upgrade forwarded).1. Setup code is burned by the operator connection
On 2026.10.4 the gateway pairs a setup-code connection silently only when it is a mobile node (
role=node,client.mode=node;isMobileNodeBootstrapConnectin the gateway's message handler). The Companion connects first asrole=operator,clientId=cli,mode=cliwith the bootstrap token. That connection getspairing-required, and the code is consumed. Afteropenclaw devices approveit keeps retrying with the same code, getsbootstrap_token_invalid, and generates a new device identity on each fresh setup attempt.Workaround: skip the setup code and enter the gateway URL and the shared gateway token by hand. Then approve the pending request once. The node role upgrade was auto-approved after that.
2. The freeze is the native chat view, not history size and not node mode
AppHangB1/MoAppHang. There is no exception inopenclaw-tray.log.Sending frame: chat.historyandWizard response payload kind=Object len=20102. The default thread (agent:main:main) is small here: 44 transcript events, about 20 KB of history. So this is not only a "very large history" problem."EnableNodeMode": falsein%APPDATA%\OpenClawTray\settings.jsondid not stop the hang.users.self->FORBIDDENis logged on every connect, but it falls back cleanly ("using owner fallback"). It is not the cause.Workaround that works: set
"UseLegacyWebChat": truein%APPDATA%\OpenClawTray\settings.json, with the app fully closed. After that the Companion opens normally, chat works, and the node connects with its canvas/tts/stt commands.This points at the native chat rendering path (see also #1167, #1568), not at pairing or history size.
github-actions commentedon Nov 10, 2026
This issue has been automatically marked as stale due to inactivity.
Please add updated OpenClaw Windows details or it will be closed.