Skip to content

Remote node registration: token scopes empty, nodes approve API incomplete #91126

Description

@AS76

Bug: Remote node registration — node token scopes not assigned, approval API incomplete

Summary

When a node client (e.g. OpenClaw Windows Hub in Node Mode) connects to a remote gateway via WebSocket (wss://), the gateway issues the node token with empty scopes and the openclaw nodes approve API doesn't match node-specific pairing requests.

This is the server-side counterpart to the client-side issues tracked in my new issue on openclaw/openclaw-windows-node (replacing the locked #663).

Symptom 1: Node token scopes empty

After device pairing and approval via openclaw devices approve, the resulting token for the node role has scopes: [] while the operator token for the same device gets proper scopes.

This suggests the gateway's token scope assignment in the device registration/approval flow doesn't differentiate between role: node and role: operator for remote connections. (Local loopback connections may work because scopes are bypassed or default to full access.)

Symptom 2: openclaw nodes approve returns unknown requestId

Node-specific pairing requests (nodes approve) never surface as pending. The pairing request ID submitted by the Windows node client isn't visible to the CLI's nodes approve command — the pending list on the gateway is likely filtered or the node request is registered under a different namespace.

Symptom 3: Token rotation for node role denied

openclaw devices rotate --role node is rejected. The CLI or the server-side handler doesn't accept the node role parameter for rotation.

Related issues

Suggested investigation

  1. Trace scope assignment in the device approval flow for role: node vs role: operator
  2. Check nodes approve request ID matching — is the node registration registered under a different key?
  3. Verify devices rotate handles the --role node parameter

Happy to provide gateway logs, paired.json excerpts, and reproduce on demand.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:needs-maintainer-reviewClawSweeper marked this issue as needing maintainer review before automation.clawsweeper:needs-product-decisionClawSweeper marked this issue as needing a product or behavior decision.clawsweeper:needs-security-reviewClawSweeper 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:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.impact:securitySecurity boundary, credential, authz, sandbox, or sensitive-data risk.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions