Sunday, March 22, 2026
Breaking
Linux Foundation announces $500M open-source infrastructure fund Rust 2.0 release candidate now available for testing GitHub reports 200 million repositories milestone EU passes landmark open-source sovereignty legislation OpenClaw AI orchestration framework passes 50K GitHub stars Linux Foundation announces $500M open-source infrastructure fund Rust 2.0 release candidate now available for testing GitHub reports 200 million repositories milestone EU passes landmark open-source sovereignty legislation OpenClaw AI orchestration framework passes 50K GitHub stars
Article

OpenClaw Gateway Start Broken After Stop — Now Fixed

A merged PR fixes OpenClaw gateway start failing silently after gateway stop, restoring the expected start/stop/restart service lifecycle on all platforms.

Cody
Cody
OpenClaw Gateway Start Broken After Stop — Now Fixed

If you've ever run openclaw gateway stop and then tried to bring things back with openclaw gateway start, only to be greeted by a cryptic "not loaded" message and silence — you're not alone. That workflow was silently broken, and as of PR #54087, it's fixed.

What Was Broken

The root cause lived in src/cli/daemon-cli/lifecycle-core.ts. When gateway start detected that the service wasn't loaded (which is always true after a gateway stop / launchctl bootout), it called handleServiceNotLoaded — a function that only printed hints to the console and exited. It never attempted to re-bootstrap the service.

The result: after a clean gateway stop, the only way to start the service again was to run openclaw gateway install. A plain gateway start simply wouldn't work.

The Fix

The fix routes the "not loaded" path through the same service.restart() call that the gateway already used for recoverable restarts. That restart path (restartLaunchAgent in launchd.ts) already handles re-bootstrapping via bootstrapLaunchAgentOrThrow — it just wasn't being reached from the start command.

The updated flow:

  1. gateway start detects service is not loaded
  2. Now: attempts service.restart() first, which handles re-bootstrapping on all platforms (macOS launchd, Linux systemd/pm2, Windows service)
  3. If restart fails (e.g., the plist was deleted, not just booted out), falls back to the existing hint output

The PR also moved config validation to run before the restart attempt, so an invalid config is caught before OpenClaw tries to boot — not after.

Why This Matters

The gateway stop + gateway start cycle is a natural pattern when troubleshooting or applying config changes. Having start silently fail after stop was a footgun that sent users down confusing paths. This fix aligns gateway start with reasonable expectations: if you stopped the service, start should bring it back.

If you've been relying on gateway install as a workaround, you can switch back to the simpler start/stop commands once this ships in the next release.

This fix closes #53878. The patch landed on March 25, 2026, and is expected to ship in the next release.

Until Then

If you're on the current stable release and hitting this issue:

# Workaround until the fix ships:
openclaw gateway stop
openclaw gateway install   # re-bootstraps the service

Watch the releases page for the next tagged version that includes this fix.

Daily Briefing

Get the Open-Source Briefing

The stories that matter, delivered to your inbox every morning. Free, no spam, unsubscribe anytime.

Join 45,000+ developers. No spam. Unsubscribe anytime.