Adapted community discussion: Paraphrased and condensed from an anonymized public OpenClaw Discord support conversation from August 2026. Technical guidance was reviewed for OpenClaw 2026.9.3.
After I updated, openclaw gateway restart leaves my service stopped with exit 78. Port 18789 is free, and the process exits before the health check comes up.
A free Gateway port rules out a local port collision. Exit 78 usually points to startup configuration. Run the read-only checks first:
openclaw doctor --lint --json
journalctl --user -u openclaw-gateway.service -n 200 --no-pager
openclaw update status --json
Keep the first fatal journal line. Plugin warnings can be separate from the error that actually stops startup.
The fatal journal line says Tailscale HTTPS port 443 is owned by a route OpenClaw cannot prove it owns. Trying to remove the assumed Serve root handler says that handler does not exist.
Inspect both Serve and Funnel before removing anything. If another service intentionally owns port 443, leave that route alone and temporarily stop OpenClaw from managing Tailscale ingress:
openclaw config set gateway.tailscale.mode off
openclaw gateway restart
openclaw gateway status --deep
This isolates the Gateway recovery from the route-ownership problem. Do not remove an existing Tailscale handler until its owner and purpose are known.
Turning off OpenClaw-managed Tailscale brought the Gateway up, and terminal chat works again. After cleaning up the old route and the unrelated MCP warning, the interface is back to normal.
For private remote access afterward, use Tailscale Serve with OpenClaw as the sole owner of the HTTPS route. Keep the Gateway on loopback, keep authentication enabled, set gateway.tailscale.mode to serve, and verify the resulting route with tailscale serve status plus openclaw gateway status --deep. Avoid running a separate background Serve or Funnel process on the same root route.