Skip to content

Troubleshooting

Common issues and their solutions when running Archon.

Check if the application is running:

If running locally:

Terminal window
# Check the server process
curl http://localhost:3090/health
# Expected: {"status":"ok"}

If running via Docker:

Terminal window
docker compose ps
# Should show 'app' with state 'Up'

Check application logs:

Local:

Terminal window
# Server logs are printed to stdout when running `bun run dev`

Docker:

Terminal window
docker compose logs -f app

Verify bot token:

Terminal window
# In your .env file
cat .env | grep TELEGRAM_BOT_TOKEN

Test with health check:

Terminal window
curl http://localhost:3090/health
# Expected: {"status":"ok"}

Check database health:

Terminal window
curl http://localhost:3090/health/db
# Expected: {"status":"ok","database":"connected"}

For SQLite (default):

SQLite requires no setup. The database is created automatically at ~/.archon/archon.db. If you see errors, check that the ~/.archon/ directory exists and is writable.

For remote PostgreSQL:

Terminal window
# Verify DATABASE_URL
echo $DATABASE_URL
# Test connection directly
psql $DATABASE_URL -c "SELECT 1"

Verify tables exist (PostgreSQL):

Terminal window
psql $DATABASE_URL -c "\dt"
# Should show: remote_agent_codebases, remote_agent_conversations, remote_agent_sessions,
# remote_agent_isolation_environments, remote_agent_workflow_runs, remote_agent_workflow_events,
# remote_agent_messages

Verify GitHub token:

Terminal window
cat .env | grep GH_TOKEN
# Should have both GH_TOKEN and GITHUB_TOKEN set

Test token validity:

Terminal window
# Test GitHub API access
curl -H "Authorization: token $GH_TOKEN" https://api.github.com/user

Check workspace permissions:

The workspace directory is ~/.archon/workspaces/ by default (or /.archon/workspaces/ in Docker). Make sure it exists and is writable.

Try manual clone:

Terminal window
git clone https://github.com/user/repo ~/.archon/workspaces/test-repo

Verify webhook delivery:

  1. Go to your webhook settings in GitHub
  2. Click on the webhook
  3. Check “Recent Deliveries” tab
  4. Look for successful deliveries (green checkmark)

Check webhook secret:

Terminal window
cat .env | grep WEBHOOK_SECRET
# Must match exactly what you entered in GitHub

Verify ngrok is running (local dev):

Terminal window
# Check ngrok status
curl http://localhost:4040/api/tunnels
# Or visit http://localhost:4040 in browser

Check application logs for webhook processing:

Local:

Terminal window
# Look for GitHub-related log lines in server output

Docker:

Terminal window
docker compose logs -f app | grep GitHub

Check if port 3090 is already in use:

macOS/Linux:

Terminal window
lsof -i :3090

Windows:

Terminal window
netstat -ano | findstr :3090

You can override the port with the PORT environment variable:

Terminal window
PORT=4000 bun run dev

When running in a git worktree, Archon automatically allocates a unique port (3190-4089 range) so you don’t need to worry about conflicts with the main instance.

Symptom: The Web UI shows a spinning indicator with no response, and the terminal shows no activity — even though you’ve started bun run dev.

Cause: A previous bun or node process is still holding the port. This is common on Windows when the terminal is closed without stopping the server.

Diagnose:

Terminal window
netstat -ano | findstr :3090

Note the PID in the last column, then verify which process it is:

Terminal window
tasklist | findstr 12345

(Replace 12345 with the actual PID.)

Fix — kill by PID (preferred):

Terminal window
taskkill /F /PID 12345

If multiple stale processes are present:

Terminal window
taskkill /F /IM bun.exe
taskkill /F /IM node.exe

See also: Windows Setup for more Windows-specific guidance.

agent-browser: command not found:

agent-browser is an optional external dependency — see the E2E Testing Guide for installation.

Terminal window
npm install -g agent-browser
agent-browser install

agent-browser daemon fails to start (Windows):

agent-browser has a known Windows bug. Use WSL as a workaround — see E2E Testing on WSL.

agent-browser daemon fails to start (macOS/Linux):

Kill stale daemons and retry:

Terminal window
pkill -f daemon.js
agent-browser open http://localhost:3090

These issues are specific to running Archon inside Docker containers.

Check logs for specific errors:

Terminal window
docker compose logs app

Verify environment variables:

Terminal window
# Check if .env is properly formatted
docker compose config

Rebuild without cache:

Terminal window
docker compose build --no-cache
docker compose up -d

If using the with-db profile, add --profile with-db to the above commands.

For local PostgreSQL (with-db profile):

Terminal window
# Check if postgres container is running
docker compose --profile with-db ps postgres
# Check postgres logs
docker compose logs -f postgres
# Test direct connection
docker compose exec postgres psql -U postgres -c "SELECT 1"

Verify tables exist (Docker PostgreSQL):

Terminal window
docker compose exec postgres psql -U postgres -d remote_coding_agent -c "\dt"
# Should show: remote_agent_codebases, remote_agent_conversations, remote_agent_sessions,
# remote_agent_isolation_environments, remote_agent_workflow_runs, remote_agent_workflow_events,
# remote_agent_messages

Check workspace permissions inside the container:

Terminal window
docker compose exec app ls -la /.archon/workspaces

Try manual clone inside the container:

Terminal window
docker compose exec app git clone https://github.com/user/repo /.archon/workspaces/test-repo