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.

  1. Get the fresh token (to log into the dashboard):

    sudo -u openclaw -H openclaw dashboard --no-open
    
  2. Refresh the browser: Paste the token if asked. The browser then says pairing required.

  3. 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

  1. 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.