-
-
Notifications
You must be signed in to change notification settings - Fork 39.7k
Description
Summary
I have a paired + connected headless node host (“Build Node”) that advertises system.run/system.which. Direct RPC calls via openclaw nodes invoke work and return quickly, but openclaw nodes run consistently fails with:
nodes run failed: Error: gateway timeout after 35000ms
This happens even after adding allowlist entries for /usr/bin/uname on the node.
Environment
Gateway running in a Proxmox container (Debian-based)
Separate Debian container used as a DEV/build server (runs the headless node host)
Gateway bind: loopback (127.0.0.1) with token auth enabled
Node host connects to gateway via SSH local-forward tunnel
OpenClaw versions:
Gateway CLI: OpenClaw 2026.2.6-3 (85ed6c7) (upgraded from 2026.2.3-1 to rule out version mismatch)
Node host reports: core v2026.2.6-3
Topology / how the node connects
On DEV container, I run an SSH tunnel to the gateway container and then start the node host pointing at the tunnel endpoint (localhost:18790 -> gateway localhost:18789). Node shows as:
paired · connected
Caps: browser, system
Commands include: system.run, system.which, system.execApprovals.get/set, browser.proxy
What works (fast)
These return quickly:
-
system.which:
openclaw nodes invoke
--node "Build Node"
--command system.which
--params '{"bins":["uname"]}' -
system.run direct invoke:
openclaw nodes invoke
--node "Build Node"
--command system.run
--params '{"command":["/usr/bin/uname","-a"],"agentId":"main","timeoutMs":5000}'
What fails (always)
This consistently times out after ~35s:
openclaw nodes run --node "Build Node" -- uname -a
Error:
nodes run failed: Error: gateway timeout after 35000ms
Gateway target: ws://127.0.0.1:18789
Source: local loopback
Config: /home//.openclaw/openclaw.json
Bind: loopback
Exec approvals / allowlist
I added allowlist entries on the node host (via gateway CLI) for /usr/bin/uname, both for agent * and agent main. The allowlist table shows entries like:
Agent: *, Pattern: /usr/bin/uname
Agent: main, Pattern: /usr/bin/uname
Expected behavior
openclaw nodes run --node "Build Node" -- uname -a should execute and return stdout/stderr/exit code, similar to the successful nodes invoke system.run.
Actual behavior
openclaw nodes run hangs and then fails with gateway timeout after 35000ms
Notes / suspicion
Since nodes invoke system.run works reliably, this looks specific to the nodes run wrapper path (possibly involving exec.approval.request / approval flow). It feels like nodes run is waiting on something that never resolves, then hits a hard 35s timeout, even though the underlying node invoke path works.
Repro steps
Run headless node host on a Debian machine and pair it to a gateway.
Confirm the node is paired · connected and has system.run.
Verify openclaw nodes invoke ... system.run works.
Run openclaw nodes run --node "" -- uname -a → observe 35s timeout.