openclaw - 💡(How to fix) Fix [Bug]: Linux headless node exec fails with spawn /bin/sh ENOENT despite connected nodes and existing /bin/sh [1 pull requests]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

exec host=node fails on three connected Linux headless nodes with spawn /bin/sh ENOENT, even though all nodes run OpenClaw 2026.5.20 and /bin/sh exists on each host.

Error Message

Node status shows all nodes connected and exposing node exec capabilities: { "displayName": "node-a", "platform": "linux", "version": "2026.5.20", "clientMode": "node", "deviceFamily": "Linux", "commands": [ "browser.proxy", "system.execApprovals.get", "system.execApprovals.set", "system.run", "system.run.prepare", "system.which" ], "paired": true, "connected": true }

Shell exists on each node: OpenClaw 2026.5.20 active /usr/bin/sh /bin/sh -> dash /usr/bin/sh -> dash

Gateway bundled code contains: return [ "/bin/sh", "-lc", command ];

Observed error: spawn /bin/sh ENOENT

Root Cause

exec host=node fails on three connected Linux headless nodes with spawn /bin/sh ENOENT, even though all nodes run OpenClaw 2026.5.20 and /bin/sh exists on each host.

Fix Action

Fixed

Code Example

Node status shows all nodes connected and exposing node exec capabilities:
{
  "displayName": "node-a",
  "platform": "linux",
  "version": "2026.5.20",
  "clientMode": "node",
  "deviceFamily": "Linux",
  "commands": [
    "browser.proxy",
    "system.execApprovals.get",
    "system.execApprovals.set",
    "system.run",
    "system.run.prepare",
    "system.which"
  ],
  "paired": true,
  "connected": true
}

Shell exists on each node:
OpenClaw 2026.5.20
active
/usr/bin/sh
/bin/sh -> dash
/usr/bin/sh -> dash

Gateway bundled code contains:
return [
  "/bin/sh",
  "-lc",
  command
];

Observed error:
spawn /bin/sh ENOENT
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

exec host=node fails on three connected Linux headless nodes with spawn /bin/sh ENOENT, even though all nodes run OpenClaw 2026.5.20 and /bin/sh exists on each host.

Steps to reproduce

exec host=node node=node-a command="hostname; openclaw --version; uptime -p" exec host=node node=node-b command="hostname; openclaw --version; uptime -p" exec host=node node=node-c command="hostname; openclaw --version; uptime -p"

Expected behavior

exec host=node should run the command on each connected Linux headless node and return command output.

Actual behavior

spawn /bin/sh ENOENT

OpenClaw version

Gateway: 2026.5.20 Linux headless nodes: 2026.5.20

Operating system

Linux headless nodes. Exact distro/version: NOT_ENOUGH_INFO

Install method

Gateway runs in Docker. Linux nodes run as user systemd services.

Model

NOT_ENOUGH_INFO

Provider / routing chain

NOT_ENOUGH_INFO

Additional provider/model setup details

NOT_ENOUGH_INFO

Logs, screenshots, and evidence

Node status shows all nodes connected and exposing node exec capabilities:
{
  "displayName": "node-a",
  "platform": "linux",
  "version": "2026.5.20",
  "clientMode": "node",
  "deviceFamily": "Linux",
  "commands": [
    "browser.proxy",
    "system.execApprovals.get",
    "system.execApprovals.set",
    "system.run",
    "system.run.prepare",
    "system.which"
  ],
  "paired": true,
  "connected": true
}

Shell exists on each node:
OpenClaw 2026.5.20
active
/usr/bin/sh
/bin/sh -> dash
/usr/bin/sh -> dash

Gateway bundled code contains:
return [
  "/bin/sh",
  "-lc",
  command
];

Observed error:
spawn /bin/sh ENOENT

Impact and severity

Affected users/systems/channels: Linux headless node exec via exec host=node Severity: blocks workflow Frequency: always observed on three connected Linux nodes Consequence: node-based shell collection fails; SSH fallback is required

Additional information

Regression evidence is incomplete. Last known good version: NOT_ENOUGH_INFO. First observed bad version: 2026.5.20.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

exec host=node should run the command on each connected Linux headless node and return command output.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: Linux headless node exec fails with spawn /bin/sh ENOENT despite connected nodes and existing /bin/sh [1 pull requests]