#canvas failed: node required

1 messages · Page 1 of 1 (latest)

tawny abyss
#

Issue: OpenClaw Node Pairing Failure (pairing required / gateway closed 1008)

Environment:
OS: Windows 11 (x64),
OpenClaw CLI Version: 2026.3.12,
Gateway Mode: Local (ws://127.0.0.1:18789),
Node Host: Headless Node service,

Symptoms:
Running openclaw node run results in:node host gateway connect failed: pairing requiredgateway connect failed: GatewayClientRequestError: pairing requirednode host gateway closed (1008): pairing required,
openclaw nodes list shows Pending: 0 · Paired: 0, and no pairing code is displayed in the terminal.,
Attempting to approve via openclaw nodes approve <id> is impossible because no requestId is generated.,
Agent tools (Canvas/Node) return node required errors despite the service being active.,

Troubleshooting performed:
Gateway restarted multiple times.,
tools.profile set to full.,
Node service reinstalled and restarted.,
Checked openclaw nodes pending, but it returns an empty list.,

Ask:
Why does the Node service fail to trigger a visible pairing request or display a pairing code, even when the Gateway is reachable? Is there a way to force-trigger the pairing mode or manually register the local node?

dim beaconBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

feral orchidBOT
#

(1008): pairing required on openclaw node run means: the Gateway is reachable, but the node host’s device identity hasn’t been approved yet.

The key gotcha: for headless node hosts, pairing is device pairing, not the legacy nodes pending/approve flow.

What to do (the flow that should work)

On the gateway host (same machine in your case):

openclaw devices list
openclaw devices approve --latest
# or: openclaw devices approve <requestId>

Then verify:

#
openclaw nodes status

Docs:

Why you’re seeing “Pending: 0” in openclaw nodes …

Per docs, openclaw nodes pending/approve is the gateway-owned pairing store (node.pair.*) and does not gate the WS handshake for real nodes/node-hosts.

Real nodes/node-hosts require openclaw devices … approvals instead:
https://docs.openclaw.ai/channels/pairing#2-node-device-pairing-iosandroidmacosheadless-nodes

If openclaw devices list is still empty

That usually means the node host isn’t actually reaching the same Gateway WS endpoint you think it is (common with WSL2/Docker/loopback confusion), or you’re looking at logs/state for a different gateway instance.

#

Fast check: run this while starting the node host in another terminal:

openclaw logs --follow

“Force trigger” pairing

There’s no manual “register” without a connection attempt, but you can force a fresh pairing request by clearing the node host identity:

  • delete ~/.openclaw/node.json on the node host machine (Windows: %USERPROFILE%\.openclaw\node.json), then restart the node service, or
  • run with a new id once: openclaw node run --node-id <new-id> ...

One more important detail (re: Canvas)

A headless node host only exposes system.run/system.which — it won’t satisfy canvas.* tools. For Canvas you need a real node device/app that advertises canvas/screen/camera capabilities.

If you paste:

  1. openclaw devices list --json (right after starting openclaw node run) and