-
Notifications
You must be signed in to change notification settings - Fork 249
[Bug]: Tray regenerates device-key-ed25519.json on every reboot, requiring re-pairing each time #1031
Copy link
Copy link
Open
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.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:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.This issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.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.
Description
Metadata
Metadata
Assignees
Labels
P1Urgent regression or broken agent/channel workflow affecting real users now.Urgent regression or broken agent/channel workflow affecting real users now.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.ClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-security-reviewClawSweeper marked this issue as needing security-sensitive review.ClawSweeper marked this issue as needing security-sensitive review.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:securityThis issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.This issue is about security boundaries, credentials, authz, sandboxing, or sensitive data.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.
Type
Fields
Priority
None yet
Projects
StatusShow more project fields
Backlog
[Bug]: Windows Tray regenerates device identity on every reboot, requiring re-pairing each time
Summary
After every system reboot, the OpenClaw Windows Tray (v0.6.12) generates a new device keypair instead of reusing the persisted one in
AppData\Roaming\OpenClawTray\gateways\{id}\device-key-ed25519.json. This causes a newdeviceId, which the gateway doesn't recognize → triggers a re-pairing flow every single boot.Environment
ws://127.0.0.1:18789)Steps to Reproduce
openclaw nodes listActual Behavior
Every reboot creates a brand new node entry with a different
nodeId:Evidence from Tray logs showing the handshake flow on each boot:
The
device-key-ed25519.jsonfile is overwritten with a brand new keypair on each startup (file creation time matches boot time).Meanwhile,
C:\Users\{user}\.openclaw\nodes\paired.jsonaccumulates stale entries — one per reboot.Expected Behavior
device-key-ed25519.jsonon startupdeviceIdshould persist across rebootsRoot Cause Analysis
The Tray app appears to generate a new Ed25519 keypair on every startup instead of checking if
device-key-ed25519.jsonalready exists and loading it. The persistent file atAppData\Roaming\OpenClawTray\gateways\{gatewayId}\device-key-ed25519.jsongets overwritten each time.The auto-approve cron workaround handles the re-pairing automatically, so the node eventually works — but this creates unnecessary pairing entries, a ~60 second gap on boot, and is a fundamentally broken identity persistence model.
Additional Context
devices/paired.jsonon the gateway side also only retains the latest entry, suggesting the gateway side also doesn't handle device identity churn gracefullygatewayIddirectory name (94356bcb-...) is stable across reboots, ruling out a directory path issueWorkaround
Set up an auto-approve cron that runs every 30 seconds to catch the pending pairing request. This masks the symptom but doesn't fix the root cause.