Skip to content

Common Errors

Another process is using the API port.

Terminal window
# Find what's using it
lsof -i :18781
# Stop the conflicting process, or use a different port
snippbot start --port 19000

Your active Python is too old.

Terminal window
# Check what's being used
which python3 && python3 --version
# Install Python 3.11+ and ensure it's on PATH, or activate the venv
source .venv/bin/activate

ModuleNotFoundError: No module named 'snippbot_core'

Section titled “ModuleNotFoundError: No module named 'snippbot_core'”

The Python packages aren’t installed, or the venv isn’t activated.

Terminal window
source .venv/bin/activate
pip install -e packages/core packages/local packages/cli

No AI provider is configured.

Terminal window
snippbot config set anthropic_api_key sk-ant-your-key
# or
export ANTHROPIC_API_KEY=sk-ant-your-key

Your token is missing, expired, or invalid.

Terminal window
# Verify your API key works
curl http://localhost:18781/api/auth/validate \
-H "Authorization: Bearer snip_your_key"
# Create a new API key via Settings → API Keys in the UI

Your token is valid, but your permission level is insufficient for this action.

Check the operation’s required permission level in Settings > Security.

Setup already complete — cannot re-register

Section titled “Setup already complete — cannot re-register”

The POST /api/auth/register endpoint only works when zero users exist.

Terminal window
# To reset and start fresh (creates a backup first)
snippbot reset --soft # re-run setup wizard
snippbot reset # full reset

The executor may have crashed mid-task.

Terminal window
# Restart the daemon
snippbot stop && snippbot start
# The task will be retried on next startup

The task exceeded the default 5-minute timeout.

Increase the timeout for long-running tasks via the API or increase the global default:

Terminal window
SNIPPBOT_TASK_TIMEOUT=1800 snippbot start # 30 minutes

The AI provider returned a 429. Snippbot will automatically retry with exponential backoff. No action needed unless it persists.

The agent’s workspace directory was deleted or is inaccessible.

Terminal window
# Check workspace exists
ls -la ~/.snippbot/workspaces/
# Recreate if missing — daemon will reinitialize on next task
mkdir -p ~/.snippbot/workspaces/

Browser automation requires Chrome or Chromium.

Terminal window
# macOS
brew install --cask google-chrome
# Ubuntu/Debian
apt-get install -y chromium-browser
# Or specify path
SNIPPBOT_CHROME_PATH=/usr/bin/chromium snippbot start

The browser process crashed or wasn’t started.

Terminal window
# Enable browser debug logging
SNIPPBOT_LOG_LEVEL=debug snippbot start
tail -f ~/.snippbot/logs/daemon.log | grep browser

Sandbox execution requires Docker or Podman.

Terminal window
# Install Docker
# https://docs.docker.com/engine/install/
# Or use process-based sandbox (no isolation)
SNIPPBOT_SANDBOX_BACKEND=process snippbot start

Docker daemon may not be running.

Terminal window
# macOS
open -a Docker
# Linux
sudo systemctl start docker

Another process has the SQLite database open.

Terminal window
# Stop all running instances
snippbot stop --force
# Check for zombie processes
pgrep -f snippbot
kill <pid>

Database corruption or migration needed.

Terminal window
# Run health check
snippbot doctor
# Last resort: reset (backup is created first)
snippbot reset

The signing secret doesn’t match what the platform sends.

  • Re-check the signing secret in Settings → Channels
  • Ensure the webhook URL is correct (Snippbot’s public URL on port 18790)

Adapter server not reachable from internet

Section titled “Adapter server not reachable from internet”

Webhooks require a publicly accessible URL. In development, use a tunnel:

Terminal window
# ngrok (free tier)
ngrok http 18790
# cloudflared tunnel
cloudflared tunnel --url http://localhost:18790

Terminal window
snippbot doctor # Automated health check
snippbot doctor --fix # Try auto-fixes
tail -f ~/.snippbot/logs/daemon.log # Live logs

See also: Debug Guide and FAQ.