# Check if the process is running
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status openclaw # If not running, -weight: 500;">start it
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start openclaw # If running but refusing connections, check the bind address
openclaw config get gateway.bindAddress # Default is 127.0.0.1 (localhost only). To allow remote access:
openclaw config set gateway.bindAddress 0.0.0.0
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart openclaw
# Check if the process is running
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status openclaw # If not running, -weight: 500;">start it
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start openclaw # If running but refusing connections, check the bind address
openclaw config get gateway.bindAddress # Default is 127.0.0.1 (localhost only). To allow remote access:
openclaw config set gateway.bindAddress 0.0.0.0
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart openclaw
# Check if the process is running
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status openclaw # If not running, -weight: 500;">start it
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">start openclaw # If running but refusing connections, check the bind address
openclaw config get gateway.bindAddress # Default is 127.0.0.1 (localhost only). To allow remote access:
openclaw config set gateway.bindAddress 0.0.0.0
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart openclaw
# Rebuild the frontend assets
openclaw rebuild-ui # If build fails with out-of-memory, add swap space first
-weight: 600;">sudo fallocate -l 2G /swapfile
-weight: 600;">sudo chmod 600 /swapfile
-weight: 600;">sudo mkswap /swapfile
-weight: 600;">sudo swapon /swapfile
openclaw rebuild-ui # Clear browser cache and reload with Ctrl+Shift+R
# Rebuild the frontend assets
openclaw rebuild-ui # If build fails with out-of-memory, add swap space first
-weight: 600;">sudo fallocate -l 2G /swapfile
-weight: 600;">sudo chmod 600 /swapfile
-weight: 600;">sudo mkswap /swapfile
-weight: 600;">sudo swapon /swapfile
openclaw rebuild-ui # Clear browser cache and reload with Ctrl+Shift+R
# Rebuild the frontend assets
openclaw rebuild-ui # If build fails with out-of-memory, add swap space first
-weight: 600;">sudo fallocate -l 2G /swapfile
-weight: 600;">sudo chmod 600 /swapfile
-weight: 600;">sudo mkswap /swapfile
-weight: 600;">sudo swapon /swapfile
openclaw rebuild-ui # Clear browser cache and reload with Ctrl+Shift+R
-weight: 600;">sudo lsof -i :3000
-weight: 600;">sudo lsof -i :3000
-weight: 600;">sudo lsof -i :3000
# Check the logs for the actual error
openclaw logs --tail 50 # Test the API key directly
openclaw test-api-key # If rate limited, check your usage
openclaw config get api.provider
# Then check your usage dashboard at the provider's site # If network timeout, test outbound connectivity
-weight: 500;">curl -v https://api.anthropic.com/v1/messages
# Check the logs for the actual error
openclaw logs --tail 50 # Test the API key directly
openclaw test-api-key # If rate limited, check your usage
openclaw config get api.provider
# Then check your usage dashboard at the provider's site # If network timeout, test outbound connectivity
-weight: 500;">curl -v https://api.anthropic.com/v1/messages
# Check the logs for the actual error
openclaw logs --tail 50 # Test the API key directly
openclaw test-api-key # If rate limited, check your usage
openclaw config get api.provider
# Then check your usage dashboard at the provider's site # If network timeout, test outbound connectivity
-weight: 500;">curl -v https://api.anthropic.com/v1/messages
openclaw config set api.timeout 300
openclaw config set api.timeout 300
openclaw config set api.timeout 300
# Verify the skill is installed and active
openclaw skills list --verbose # Check the skill's trigger pattern
openclaw skills inspect skill-name # Force a context refresh so the agent loads the new skill
openclaw context refresh # Test the trigger directly
openclaw skills test skill-name "your trigger message"
# Verify the skill is installed and active
openclaw skills list --verbose # Check the skill's trigger pattern
openclaw skills inspect skill-name # Force a context refresh so the agent loads the new skill
openclaw context refresh # Test the trigger directly
openclaw skills test skill-name "your trigger message"
# Verify the skill is installed and active
openclaw skills list --verbose # Check the skill's trigger pattern
openclaw skills inspect skill-name # Force a context refresh so the agent loads the new skill
openclaw context refresh # Test the trigger directly
openclaw skills test skill-name "your trigger message"
# Check the MCP server configuration
openclaw config get mcp.servers # Verify the MCP server is running and accessible
-weight: 500;">curl http://localhost:8080/health # or your MCP server URL # Check MCP protocol version compatibility
openclaw mcp version-check # If version mismatch, -weight: 500;">update the MCP server
-weight: 500;">npm -weight: 500;">update @modelcontextprotocol/server # for Node.js MCP servers
-weight: 500;">pip -weight: 500;">install ---weight: 500;">upgrade mcp-server # for Python MCP servers
# Check the MCP server configuration
openclaw config get mcp.servers # Verify the MCP server is running and accessible
-weight: 500;">curl http://localhost:8080/health # or your MCP server URL # Check MCP protocol version compatibility
openclaw mcp version-check # If version mismatch, -weight: 500;">update the MCP server
-weight: 500;">npm -weight: 500;">update @modelcontextprotocol/server # for Node.js MCP servers
-weight: 500;">pip -weight: 500;">install ---weight: 500;">upgrade mcp-server # for Python MCP servers
# Check the MCP server configuration
openclaw config get mcp.servers # Verify the MCP server is running and accessible
-weight: 500;">curl http://localhost:8080/health # or your MCP server URL # Check MCP protocol version compatibility
openclaw mcp version-check # If version mismatch, -weight: 500;">update the MCP server
-weight: 500;">npm -weight: 500;">update @modelcontextprotocol/server # for Node.js MCP servers
-weight: 500;">pip -weight: 500;">install ---weight: 500;">upgrade mcp-server # for Python MCP servers
# Check what is using port 18789
-weight: 600;">sudo ss -tlnp | grep 18789 # If another process owns the port, kill it or change OpenClaw's port
openclaw config set gateway.port 18790 # Check gateway initialization logs specifically
openclaw logs --filter gateway --tail 30 # If missing dependency, reinstall gateway module
openclaw module reinstall gateway
# Check what is using port 18789
-weight: 600;">sudo ss -tlnp | grep 18789 # If another process owns the port, kill it or change OpenClaw's port
openclaw config set gateway.port 18790 # Check gateway initialization logs specifically
openclaw logs --filter gateway --tail 30 # If missing dependency, reinstall gateway module
openclaw module reinstall gateway
# Check what is using port 18789
-weight: 600;">sudo ss -tlnp | grep 18789 # If another process owns the port, kill it or change OpenClaw's port
openclaw config set gateway.port 18790 # Check gateway initialization logs specifically
openclaw logs --filter gateway --tail 30 # If missing dependency, reinstall gateway module
openclaw module reinstall gateway
# Check current heartbeat interval
openclaw config get heartbeat.interval # Increase the interval to reduce token waste
openclaw config set heartbeat.interval 30m # every 30 minutes # Or -weight: 500;">disable heartbeat entirely (agent will cold--weight: 500;">start on each message)
openclaw config set heartbeat.enabled false
# Check current heartbeat interval
openclaw config get heartbeat.interval # Increase the interval to reduce token waste
openclaw config set heartbeat.interval 30m # every 30 minutes # Or -weight: 500;">disable heartbeat entirely (agent will cold--weight: 500;">start on each message)
openclaw config set heartbeat.enabled false
# Check current heartbeat interval
openclaw config get heartbeat.interval # Increase the interval to reduce token waste
openclaw config set heartbeat.interval 30m # every 30 minutes # Or -weight: 500;">disable heartbeat entirely (agent will cold--weight: 500;">start on each message)
openclaw config set heartbeat.enabled false
# Check how many files are in the memory directory
ls -la ~/.openclaw/memory/ | wc -l # Archive old daily logs (keep last 30 days)
mkdir -p ~/.openclaw/memory/archive
find ~/.openclaw/memory/daily-logs/ -name "*.md" -mtime +30 \ -exec mv {} ~/.openclaw/memory/archive/ \; # Increase the index timeout
openclaw config set memory.indexTimeout 120 # Rebuild the memory index
openclaw memory reindex
# Check how many files are in the memory directory
ls -la ~/.openclaw/memory/ | wc -l # Archive old daily logs (keep last 30 days)
mkdir -p ~/.openclaw/memory/archive
find ~/.openclaw/memory/daily-logs/ -name "*.md" -mtime +30 \ -exec mv {} ~/.openclaw/memory/archive/ \; # Increase the index timeout
openclaw config set memory.indexTimeout 120 # Rebuild the memory index
openclaw memory reindex
# Check how many files are in the memory directory
ls -la ~/.openclaw/memory/ | wc -l # Archive old daily logs (keep last 30 days)
mkdir -p ~/.openclaw/memory/archive
find ~/.openclaw/memory/daily-logs/ -name "*.md" -mtime +30 \ -exec mv {} ~/.openclaw/memory/archive/ \; # Increase the index timeout
openclaw config set memory.indexTimeout 120 # Rebuild the memory index
openclaw memory reindex
# Use named volumes in -weight: 500;">docker-compose.yml
# -weight: 500;">docker-compose.yml
version: '3.8'
services: openclaw: image: openclaw/openclaw:latest ports: - "18789:18789" - "3000:3000" volumes: - openclaw-data:/app/data - openclaw-config:/app/config volumes: openclaw-data: openclaw-config:
# Use named volumes in -weight: 500;">docker-compose.yml
# -weight: 500;">docker-compose.yml
version: '3.8'
services: openclaw: image: openclaw/openclaw:latest ports: - "18789:18789" - "3000:3000" volumes: - openclaw-data:/app/data - openclaw-config:/app/config volumes: openclaw-data: openclaw-config:
# Use named volumes in -weight: 500;">docker-compose.yml
# -weight: 500;">docker-compose.yml
version: '3.8'
services: openclaw: image: openclaw/openclaw:latest ports: - "18789:18789" - "3000:3000" volumes: - openclaw-data:/app/data - openclaw-config:/app/config volumes: openclaw-data: openclaw-config:
-weight: 500;">docker run -d \ -v openclaw-data:/app/data \ -v openclaw-config:/app/config \ -p 18789:18789 \ -p 3000:3000 \ openclaw/openclaw:latest
-weight: 500;">docker run -d \ -v openclaw-data:/app/data \ -v openclaw-config:/app/config \ -p 18789:18789 \ -p 3000:3000 \ openclaw/openclaw:latest
-weight: 500;">docker run -d \ -v openclaw-data:/app/data \ -v openclaw-config:/app/config \ -p 18789:18789 \ -p 3000:3000 \ openclaw/openclaw:latest
-weight: 500;">docker volume ls
-weight: 500;">docker exec openclaw ls -la /app/data
-weight: 500;">docker volume ls
-weight: 500;">docker exec openclaw ls -la /app/data
-weight: 500;">docker volume ls
-weight: 500;">docker exec openclaw ls -la /app/data
# Validate the config and see specific errors
openclaw config validate # Reset a specific broken setting to default
openclaw config reset gateway.bindAddress # If the entire config is corrupted, back up and regenerate
cp ~/.openclaw/config.yaml ~/.openclaw/config.yaml.bak
openclaw config init
# Validate the config and see specific errors
openclaw config validate # Reset a specific broken setting to default
openclaw config reset gateway.bindAddress # If the entire config is corrupted, back up and regenerate
cp ~/.openclaw/config.yaml ~/.openclaw/config.yaml.bak
openclaw config init
# Validate the config and see specific errors
openclaw config validate # Reset a specific broken setting to default
openclaw config reset gateway.bindAddress # If the entire config is corrupted, back up and regenerate
cp ~/.openclaw/config.yaml ~/.openclaw/config.yaml.bak
openclaw config init
# Check WhatsApp connection -weight: 500;">status
openclaw channel -weight: 500;">status whatsapp # Force a fresh connection (will require new QR scan)
openclaw channel reconnect whatsapp # Enable auto-reconnect to handle temporary drops
openclaw config set channels.whatsapp.autoReconnect true
openclaw config set channels.whatsapp.reconnectInterval 30
# Check WhatsApp connection -weight: 500;">status
openclaw channel -weight: 500;">status whatsapp # Force a fresh connection (will require new QR scan)
openclaw channel reconnect whatsapp # Enable auto-reconnect to handle temporary drops
openclaw config set channels.whatsapp.autoReconnect true
openclaw config set channels.whatsapp.reconnectInterval 30
# Check WhatsApp connection -weight: 500;">status
openclaw channel -weight: 500;">status whatsapp # Force a fresh connection (will require new QR scan)
openclaw channel reconnect whatsapp # Enable auto-reconnect to handle temporary drops
openclaw config set channels.whatsapp.autoReconnect true
openclaw config set channels.whatsapp.reconnectInterval 30
# Stop all instances using this bot token
# Then delete the webhook to reset
-weight: 500;">curl "https://api.telegram.org/botYOUR_TOKEN/deleteWebhook" # Restart only the single instance that should handle this bot
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart openclaw # Verify only one connection is active
openclaw channel -weight: 500;">status telegram
# Stop all instances using this bot token
# Then delete the webhook to reset
-weight: 500;">curl "https://api.telegram.org/botYOUR_TOKEN/deleteWebhook" # Restart only the single instance that should handle this bot
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart openclaw # Verify only one connection is active
openclaw channel -weight: 500;">status telegram
# Stop all instances using this bot token
# Then delete the webhook to reset
-weight: 500;">curl "https://api.telegram.org/botYOUR_TOKEN/deleteWebhook" # Restart only the single instance that should handle this bot
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart openclaw # Verify only one connection is active
openclaw channel -weight: 500;">status telegram
# Enable built-in rate limit handling
openclaw config set api.rateLimitRetry true
openclaw config set api.rateLimitBackoff exponential # Set maximum concurrent requests
openclaw config set api.maxConcurrent 5 # Reduce heartbeat frequency to lower baseline usage
openclaw config set heartbeat.interval 30m
# Enable built-in rate limit handling
openclaw config set api.rateLimitRetry true
openclaw config set api.rateLimitBackoff exponential # Set maximum concurrent requests
openclaw config set api.maxConcurrent 5 # Reduce heartbeat frequency to lower baseline usage
openclaw config set heartbeat.interval 30m
# Enable built-in rate limit handling
openclaw config set api.rateLimitRetry true
openclaw config set api.rateLimitBackoff exponential # Set maximum concurrent requests
openclaw config set api.maxConcurrent 5 # Reduce heartbeat frequency to lower baseline usage
openclaw config set heartbeat.interval 30m
# Force-release the session lock
openclaw session unlock --force # Set a maximum lock duration to prevent future deadlocks
openclaw config set session.lockTimeout 120 # Identify which skill or tool caused the deadlock
openclaw logs --filter "lock acquired" --tail 20
# Force-release the session lock
openclaw session unlock --force # Set a maximum lock duration to prevent future deadlocks
openclaw config set session.lockTimeout 120 # Identify which skill or tool caused the deadlock
openclaw logs --filter "lock acquired" --tail 20
# Force-release the session lock
openclaw session unlock --force # Set a maximum lock duration to prevent future deadlocks
openclaw config set session.lockTimeout 120 # Identify which skill or tool caused the deadlock
openclaw logs --filter "lock acquired" --tail 20
# Check which user OpenClaw runs as
grep "User=" /etc/systemd/system/openclaw.-weight: 500;">service # Fix ownership of the OpenClaw directories
-weight: 600;">sudo chown -R openclaw:openclaw /home/openclaw/.openclaw/
-weight: 600;">sudo chown -R openclaw:openclaw /var/log/openclaw/ # Ensure the data directory has correct permissions
-weight: 600;">sudo chmod -R 750 /home/openclaw/.openclaw/
# Check which user OpenClaw runs as
grep "User=" /etc/systemd/system/openclaw.-weight: 500;">service # Fix ownership of the OpenClaw directories
-weight: 600;">sudo chown -R openclaw:openclaw /home/openclaw/.openclaw/
-weight: 600;">sudo chown -R openclaw:openclaw /var/log/openclaw/ # Ensure the data directory has correct permissions
-weight: 600;">sudo chmod -R 750 /home/openclaw/.openclaw/
# Check which user OpenClaw runs as
grep "User=" /etc/systemd/system/openclaw.-weight: 500;">service # Fix ownership of the OpenClaw directories
-weight: 600;">sudo chown -R openclaw:openclaw /home/openclaw/.openclaw/
-weight: 600;">sudo chown -R openclaw:openclaw /var/log/openclaw/ # Ensure the data directory has correct permissions
-weight: 600;">sudo chmod -R 750 /home/openclaw/.openclaw/ - Common OpenClaw Setup Mistakes and How to Fix Them
- OpenClaw Logs and Debugging Guide
- Reducing OpenClaw Token Costs (Up to 90% Cheaper)
- OpenClaw Docker Compose Guide
- OpenClaw Tools Disabled After Update: How to Fix It