Child and robot interacting with projected bubbles

Using OpenClaw for automation—the real headache isn’t configuration, it’s when things mysteriously stop working mid-run. This post covers the failures I’ve hit and their fixes.

Gateway Issues

Gateway Service Won’t Start

Symptoms: Telegram messages go unanswered, AI assistant doesn’t reply.

Check:

openclaw gateway status

Common Causes & Solutions:

CauseSolution
Process crashedopenclaw gateway restart
Bot Token expiredGet a fresh token from BotFather, update config
Port conflictUse lsof -i :port to find what’s using it, kill it
Windows won’t auto-start on bootAdd to Task Scheduler for startup

Windows Caveat: On Windows, Gateway doesn’t auto-start with the system. After each reboot, you need to manually launch it:

openclaw gateway start

I’d recommend setting it up as a Task Scheduler startup task.


Gateway Disconnects After a Few Hours

Symptoms: Works fine at first, then Telegram stops responding again after a while.

Cause: Telegram’s long-polling connection times out, and Gateway doesn’t auto-reconnect.

Solution: Use cron or systemd to keep it alive:

# Linux - systemd service
# /etc/systemd/system/openclaw-gateway.service
[Unit]
Description=OpenClaw Gateway
After=network.target

[Service]
User=as
ExecStart=/usr/local/bin/openclaw gateway start
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
sudo systemctl enable openclaw-gateway
sudo systemctl start openclaw-gateway

Message Delivery Issues

openclaw message send Has No Response

Troubleshooting steps:

  1. Confirm openclaw is executable:

    which openclaw  # Check path
    openclaw --version
    
  2. Test sending manually:

    openclaw message send --channel telegram --target your_user_id --message "test"
    
  3. Check openclaw logs:

    tail -f ~/.openclaw/logs/openclaw.log
    
  4. PATH issues in cron: Cron’s environment has a minimal PATH, so openclaw might not be found. Fix:

    # Add full PATH at the top of your cron file
    PATH=/usr/local/bin:/usr/bin:/bin:/home/as/.npm-global/bin
    

    Or use absolute paths:

    /home/as/.npm-global/bin/openclaw message send ...
    

Message Sent But Images (PDFs) Don’t Arrive

Cause: The --media path is wrong or the file doesn’t exist.

Check:

ls -la /path/to/your/report.pdf
# Confirm file exists and is readable

Note: Paths must be absolute—never use ~ or relative paths (cron doesn’t expand ~).


Telegram Bot Privacy Mode Issues

Symptoms: Bot doesn’t receive regular messages in groups (only /commands).

Cause: Telegram bots have privacy mode enabled by default, only accepting messages starting with /.

Solution: Go to BotFather → Your Bot → Bot Settings → Group Privacy → Disable.

Once disabled, the bot can receive regular group messages, and OpenClaw can respond to group mentions.


Skill Issues

Skill Installation Fails on Invoke

Symptoms: Installed the github Skill, asked Claude to check an Issue, Claude says “I can’t access GitHub”.

Cause: Skills need API token configuration after installation.

openclaw skill config github
# Follow the prompts to enter your GitHub Personal Access Token

Each Skill has its own config requirements—run openclaw skill config <name> after installing to set it up.


obsidian Skill Can’t Find Files

Problem: Asked Claude to read my Obsidian notes, says it can’t find them.

Cause: The obsidian Skill needs your vault path configured.

openclaw skill config obsidian
# vault_path: ~/Library/Mobile Documents/iCloud~md~obsidian/Documents/your_vault_name

On macOS, iCloud-synced Obsidian vaults have long paths that need to be verified.


Quant Scripts

matplotlib Errors on Servers

Symptoms:

_tkinter.TclError: no display name and no $DISPLAY environment variable

Cause: The server has no GUI; matplotlib defaults to the Tk backend.

Solution: Add this at the top of your script:

import os
os.environ["MPLBACKEND"] = "Agg"
import matplotlib
matplotlib.use("Agg")

Or add MPLBACKEND=Agg to your cron environment.


Chinese Characters Show as Boxes in PDFs (Garbled Text)

Symptoms: Generated PDFs show Chinese characters as boxes.

Cause: The server doesn’t have Chinese fonts.

Solution:

sudo apt-get install -y fonts-noto-cjk
# Restart processes after installation

When reportlab generates PDFs, it needs the font file path. Verify the font location:

fc-list | grep -i noto

yfinance Data Pull Timeouts

Symptoms: Strategy script hangs, logs show timeout or Connection reset.

Cause: yfinance connection to Yahoo Finance servers is unstable (network issues from your VPS location).

Solution:

  1. Add retry logic:

    for attempt in range(3):
        df = yf.download(symbol, ...)
        if not df.empty:
            break
        time.sleep(5)
    
  2. Use proxy nodes (route VPS traffic through a proxy server—see my proxy architecture post)

  3. If a symbol fails repeatedly, temporarily remove it from ASSETS to avoid blocking other symbols.


Log Analysis

Get in the habit of checking logs—most issues are visible there:

# Watch strategy logs in real-time
tail -f ~/.openclaw/workspace/.openclaw/signal_monitor.log

# Check the last 50 error lines
grep -i "error\|exception\|failed" ~/.openclaw/workspace/.openclaw/signal_monitor.log | tail -50

# Check openclaw's own logs
tail -f ~/.openclaw/logs/openclaw.log

For issues I haven’t covered, hit me up on Telegram and we’ll debug it together.


📷 Cover image · Generated with Flux Schnell AI · panshi.io brand style