Skip to content

[Bug]: openclaw nodes run timesout after 35s on connected headless node host, but openclaw nodes invoke system.run works #12098

@nutkracker

Description

@nutkracker

https://discord.com/channels/1456350064065904867/1470120029872853124

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:

  1. system.which:
    openclaw nodes invoke
    --node "Build Node"
    --command system.which
    --params '{"bins":["uname"]}'

  2. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions