Skip to content

[Bug]: exec host=node regression in 2026.4.2 — agent exec always routes to gateway #60772

Description

@MeikelBacks

[Bug]: exec host=node regression in 2026.4.2 — agent exec always routes to gateway

Summary

exec host=node stopped routing to the paired Windows node after upgrading from 2026.3.31 to 2026.4.2. Commands execute on the gateway instead of the remote node. This worked correctly on 2026.3.31.

This appears to be the same issue as #20669 (closed as stale), now confirmed as a regression between 2026.3.31 → 2026.4.2.

Steps to reproduce

  1. Pair a Windows 11 node (connected, system.run capability advertised)
  2. Set tools.exec.host: "node" and tools.exec.node: "<node-id>" in config
  3. Run exec hostname from an agent session (KollegePlus channel)
  4. Observe: command runs on gateway (Linux), not on the Windows node

Working on 2026.3.31 (April 1)

exec: whoami
→ loki\meike  ✅ (Windows node)

exec: schtasks /query /tn "OpenClaw Node"
→ Task info returned ✅

Broken on 2026.4.2 (April 3+)

exec host=node: hostname
→ KollegePlus  ❌ (gateway hostname, not Windows node)

exec host=node: echo $env:COMPUTERNAME
→ $env:COMPUTERNAME  ❌ (bash on Linux, not PowerShell on Windows)

Environment

  • Gateway: Ubuntu 24.04 LTS, OpenClaw 2026.4.2, running as root
  • Node: Windows 11 Pro, OpenClaw 2026.4.2, node-host mode
  • Channel: Custom plugin (KollegePlus), E2EE
  • Node status: paired, connected, system.run + system.which + browser.proxy in allowCommands
  • nodes invoke system.which: Works correctly — node responds to invoke commands
  • nodes invoke system.run: Blocked with "reserved for shell execution; use exec with host=node"

Configs tried (all failed)

Config Result
tools.exec.host: "node" (global) Runs on gateway
tools.exec.host: "auto" + host=node per-call "exec host not allowed"
tools.exec.host: "node" + tools.elevated.enabled: false Runs on gateway
Subagent with host=node "exec host not allowed"

Likely cause

Release notes for 2026.4.2 include several exec routing changes:

  • "Exec defaults: make gateway/node host exec default to YOLO mode"
  • "Gateway/exec loopback: restore legacy-role fallback for empty paired-device token maps"
  • "Exec/node hosts: stop forwarding the gateway workspace cwd to remote node exec"

The elevated channel config (tools.elevated.enabled: true) forces host=gateway per the docs. But even with elevated disabled, exec still routes to gateway instead of the node.

Impact

  • Blocks all remote node shell execution from agents
  • nodes invoke system.run is blocked ("use exec host=node")
  • openclaw nodes run CLI was removed in 2026.3.31
  • No remaining path to execute commands on paired nodes from agents

Related

OpenClaw version

2026.4.2

Operating system

Ubuntu 24.04 LTS (gateway), Windows 11 Pro (node)

Install method

npm (pnpm)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions