OpenClaw Gateway Start Failed? 2026 Fix Checklist (mode=local, EADDRINUSE, auth bind)

If you’re seeing one of these errors, this guide is for you:

Goal: restore availability first, then harden for stability.

0) 60-second quick triage (do this first)

openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor

Interpretation:


1) Error: set gateway.mode=local

Why it happens

OpenClaw requires an explicit gateway mode.

Fix

openclaw config set gateway.mode local
openclaw gateway restart
openclaw gateway status

If you run OpenClaw in a container or dedicated user account, confirm you’re editing the same user’s config directory (~/.openclaw/).


2) Error: EADDRINUSE (port 18789 already occupied)

Why it happens

Another process (or stale OpenClaw process) is using the Gateway port.

Fix

# Find the process
sudo lsof -i :18789
# or
sudo ss -tlnp | grep 18789

# Graceful stop first
openclaw gateway stop

# If still occupied, kill that PID
kill <PID>

# Start again
openclaw gateway start
openclaw gateway status

If you must change ports, update config and firewall rules together.


3) Error: refusing to bind ... without auth

Why it happens

You set a non-loopback bind address (for example 0.0.0.0) without authentication.

Two safe paths

Path A (recommended): loopback only

openclaw config set gateway.bind "127.0.0.1"
openclaw gateway restart

Path B: if remote access is required, set a token

openclaw config set gateway.auth.token "replace-with-strong-random-token"
openclaw gateway restart

Never expose an unauthenticated gateway publicly.


3.5) Error: non-loopback Control UI requires gateway.controlUi.allowedOrigins

Why it happens

Starting with v2026.2.22, OpenClaw enforces an allowedOrigins whitelist for remote Control UI access. This is a security tightening that commonly affects Docker deployments.

Fix

# Add allowed origins (can be a single domain or * for all)
openclaw config set gateway.controlUi.allowedOrigins "*"

# Or specify a domain (more secure)
openclaw config set gateway.controlUi.allowedOrigins "https://yourdomain.com"

# Restart Gateway
openclaw gateway restart

See: Fix non-loopback Control UI allowedOrigins error


4) systemd service won’t start / keeps crashing

Start with logs

journalctl --user -u openclaw-gateway --no-pager -n 80
openclaw gateway status --deep
openclaw doctor --deep

Common root causes

  1. Wrong Node version (Node 22+ recommended)
  2. API key not visible in daemon environment
  3. nvm/fnm PATH not available under systemd
  4. Permission mismatch on config/data files

Typical fix flow

# Check Node
node -v

# Put API key where daemon can read it
cat >> ~/.openclaw/.env <<'EOF'
ANTHROPIC_API_KEY=sk-ant-...
EOF

# Restart service
openclaw gateway restart
systemctl --user status openclaw-gateway --no-pager

If it’s a PATH issue, use systemctl --user edit openclaw-gateway to inject the correct Node bin path, then daemon-reload.


5) After recovery: stabilize operations

Minimum healthy baseline

openclaw gateway status
openclaw status
openclaw doctor

Also recommended:


6) Frequent local dropouts? Move to a VPS

If you’re running on a laptop (sleep/wifi changes), a small VPS is usually more reliable than repeated local firefighting.

Practical OpenClaw baseline: 2 vCPU / 2GB RAM.


7) Copy-ready gateway debug pack

openclaw status
openclaw gateway status --deep
openclaw doctor --deep
openclaw logs --follow
journalctl --user -u openclaw-gateway --no-pager -n 120

Share this output when asking for help — triage becomes much faster.


Was this article helpful?

đź’¬ Comments