Node troubleshooting
Use this page when a node is visible in status but node tools fail.
Command ladder
Section titled “Command ladder”openclaw statusopenclaw gateway statusopenclaw logs --followopenclaw doctoropenclaw channels status --probeThen run node specific checks:
openclaw nodes statusopenclaw nodes describe --node <idOrNameOrIp>openclaw approvals get --node <idOrNameOrIp>Healthy signals:
- Node is connected and paired for role
node. nodes describeincludes the capability you are calling.- Exec approvals show expected mode/allowlist.
Foreground requirements
Section titled “Foreground requirements”canvas.*, camera.*, and screen.* are foreground only on iOS/Android nodes.
Quick check and fix:
openclaw nodes describe --node <idOrNameOrIp>openclaw nodes canvas snapshot --node <idOrNameOrIp>openclaw logs --followIf you see NODE_BACKGROUND_UNAVAILABLE, bring the node app to the foreground and retry.
Permissions matrix
Section titled “Permissions matrix”| Capability | iOS | Android | macOS node app | Typical failure code |
|---|---|---|---|---|
camera.snap, camera.clip | Camera (+ mic for clip audio) | Camera (+ mic for clip audio) | Camera (+ mic for clip audio) | *_PERMISSION_REQUIRED |
screen.record | Screen Recording (+ mic optional) | Screen capture prompt (+ mic optional) | Screen Recording | *_PERMISSION_REQUIRED |
location.get | While Using or Always (depends on mode) | Foreground/Background location based on mode | Location permission | LOCATION_PERMISSION_REQUIRED |
system.run | n/a (node host path) | n/a (node host path) | Exec approvals required | SYSTEM_RUN_DENIED |
Pairing versus approvals
Section titled “Pairing versus approvals”These are different gates:
- Device pairing: can this node connect to the gateway?
- Gateway node command policy: is the RPC command ID allowed by
gateway.nodes.allowCommands/denyCommandsand platform defaults? - Exec approvals: can this node run a specific shell command locally?
Quick checks:
openclaw devices listopenclaw nodes statusopenclaw approvals get --node <idOrNameOrIp>openclaw approvals allowlist add --node <idOrNameOrIp> "/usr/bin/uname"If pairing is missing, approve the node device first.
If nodes describe is missing a command, check the gateway node command policy and whether the node actually declared that command on connect.
If pairing is fine but system.run fails, fix exec approvals/allowlist on that node.
Node pairing is an identity/trust gate, not a per-command approval surface. For system.run, the per-node policy lives in that node’s exec approvals file (openclaw approvals get --node ...), not in the gateway pairing record.
For approval-backed host=node runs, the gateway also binds execution to the
prepared canonical systemRunPlan. If a later caller mutates command/cwd or
session metadata before the approved run is forwarded, the gateway rejects the
run as an approval mismatch instead of trusting the edited payload.
Common node error codes
Section titled “Common node error codes”NODE_BACKGROUND_UNAVAILABLE→ app is backgrounded; bring it foreground.CAMERA_DISABLED→ camera toggle disabled in node settings.*_PERMISSION_REQUIRED→ OS permission missing/denied.LOCATION_DISABLED→ location mode is off.LOCATION_PERMISSION_REQUIRED→ requested location mode not granted.LOCATION_BACKGROUND_UNAVAILABLE→ app is backgrounded but only While Using permission exists.SYSTEM_RUN_DENIED: approval required→ exec request needs explicit approval.SYSTEM_RUN_DENIED: allowlist miss→ command blocked by allowlist mode. On Windows node hosts, shell-wrapper forms likecmd.exe /c ...are treated as allowlist misses in allowlist mode unless approved via ask flow.
Fast recovery loop
Section titled “Fast recovery loop”openclaw nodes statusopenclaw nodes describe --node <idOrNameOrIp>openclaw approvals get --node <idOrNameOrIp>openclaw logs --followIf still stuck:
- Re-approve device pairing.
- Re-open node app (foreground).
- Re-grant OS permissions.
- Recreate/adjust exec approval policy.