Problems with OpenClaw 2026-3-13 on my DigitalOcean droplet
While the agent was trying to compile a report based on web server logs it hit problems and broke stuff
1. The Problem
The 4:00 PM WhatsApp report failed to deliver because the system hit its 120-second timeout. In the ensuing troubleshooting, a second “ghost” OpenClaw process was accidentally started as the root user. This duplicate process consumed 120% CPU and fought for control over port 18789, causing the Web UI to hang and the terminal (TUI) to report “Gateway closed” or “Unauthorized.”
2. How to Check for Duplicate Processes
If the UI feels laggy or you see gateway closed errors, run this command in your terminal:
ps aux | grep openclaw-gateway
The Red Flag: You should only see one active process for openclaw-gateway (usually running as user openclaw). If you see a second one (especially one running as root or using high CPU), you have a conflict.
3. The Solution (Commands Used)
Step A: The “Nuke” (Kill everything stuck)
We had to stop the service and manually kill the runaway ghost process:
sudo systemctl stop openclaw
sudo killall -9 openclaw-gateway
Step B: Restore the Service
Start the gateway properly so it can reclaim the port:
sudo systemctl start openclaw
Step C: Pairing the Web Interface
Because the gateway was reset, the browser needed a new security pairing.
-
Get the fresh token (to log into the dashboard):
sudo -u openclaw -H openclaw dashboard --no-open -
Refresh the browser: Paste the token if asked. The browser then says pairing required.
-
Get the pairing code
sudo -u openclaw -H openclaw devices list
This should list devices including a pending device where you can find the pairing code
- Approve the code via terminal:
# Replace <CODE> with the code from your browser
sudo -u openclaw -H openclaw devices approve <CODE>
Step D: Fix the Root Cause (Increase Timeout)
To prevent the Afternoon Report from timing out again, updated the internal cron configuration:
# Increased timeout from 120s to 300s (5 minutes)
sed -i 's/"timeoutSeconds": 120/"timeoutSeconds": 300/g' /home/openclaw/.openclaw/cron/jobs.json
Step E: Manual Verification
Finally, you can trigger the report manually to ensure delivery:
# Get token for the CLI
TOKEN=$(sudo -u openclaw -H cat /home/openclaw/.openclaw/openclaw.json | python3 -c "import sys, json; print(json.load(sys.stdin)['gateway']['auth']['token'])")
# Run the job manually
sudo -u openclaw -H bash -c "export OPENCLAW_GATEWAY_TOKEN=$TOKEN && openclaw cron run a37bb836-ad22-456f-8aae-40d9ada3a683"
Result: Report delivered successfully. Everything is now healthy and optimized, but for how long…
Comments
Please let us know what you think.