🐛 Bug Description
openclaw cron commands (both create and list) fail with gateway closed (1000: normal closure) immediately after gateway restart, even when gateway is confirmed running and responsive.
Environment
- OS: Windows (NT 10.0.26200)
- OpenClaw: 2026.3.13 (61d171a)
- Node.js: v24.13.0
- Installation: npm global
- Gateway: Running as Windows scheduled task (
\OpenClaw Gateway)
Steps to Reproduce
- Gateway is installed as a scheduled task (service mode)
- Gateway is running (
netstat shows 127.0.0.1:18789 LISTENING)
- Run any
openclaw cron command:
openclaw cron list
openclaw cron create --name "test" ...
- Command immediately fails with:
gateway connect failed: Error: gateway closed (1000):
Error: gateway closed (1000 normal closure): no close reason
Gateway target: ws://127.0.0.1:18789
Gateway Log (relevant entries)
{"subsystem":"gateway/ws"} handshake timeout {"handshake":"failed","durationMs":5172,"host":"127.0.0.1:18789","handshakeMs":3014}
"closed before connect conn=... remote=127.0.0.1 fwd=n/a origin=n/a host=127.0.0.1:18789 ua=n/a code=1000 reason=n/a"
The CLI connects via WebSocket but the gateway closes the connection during handshake before the RPC completes.
Expected Behavior
openclaw cron list should return the list of cron jobs (empty if none exist).
🐛 Bug Description
openclaw croncommands (both create and list) fail withgateway closed (1000: normal closure)immediately after gateway restart, even when gateway is confirmed running and responsive.Environment
\OpenClaw Gateway)Steps to Reproduce
netstatshows 127.0.0.1:18789 LISTENING)openclaw croncommand:Gateway Log (relevant entries)
The CLI connects via WebSocket but the gateway closes the connection during handshake before the RPC completes.
Expected Behavior
openclaw cron listshould return the list of cron jobs (empty if none exist).