Common Issues
API startup failures
"JWT_SECRET environment variable is not set"
Cause: JWT_SECRET is missing from .env.
Fix: Generate and set JWT_SECRET:
# Generate a secure secret
node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
# Add to .env
JWT_SECRET=your-generated-secret
"CORS_ORIGIN cannot be '*'"
Cause: CORS_ORIGIN is set to * or not set.
Fix: Set CORS_ORIGIN to the exact dashboard URL:
CORS_ORIGIN=http://localhost:5173
# or for production:
CORS_ORIGIN=https://your-dashboard.example.com
API fails to connect to database
Cause: Database is not running or connection settings are wrong.
Fix:
- Check the database is running:
docker compose ps - Verify
DB_HOST,DB_PORT,DB_NAME,DB_USER,DB_PASSWORDin.env - Check API logs:
docker compose logs api
Dashboard issues
"Failed to connect to API"
Cause: The dashboard can't reach the API.
Fix:
- Verify the API is running:
curl http://localhost:3000/health - Check
VITE_API_URLinmosbot-dashboard/.envmatches the running API URL - Check for CORS errors in the browser console
Dashboard shows blank page
Cause: Build error or missing environment variable.
Fix:
- Check browser console for errors
- Verify
VITE_API_URLis set inmosbot-dashboard/.env - Restart the dashboard:
docker compose restart dashboard
Login fails with "Invalid credentials"
Cause: Wrong email/password, or the bootstrap account wasn't created.
Fix:
- Verify
BOOTSTRAP_OWNER_EMAILandBOOTSTRAP_OWNER_PASSWORDare set in.env - Check API logs for bootstrap account creation:
docker compose logs api | grep bootstrap - If the bootstrap account was never created, set the variables and restart:
docker compose restart api
No owner account created
Cause: BOOTSTRAP_OWNER_EMAIL or BOOTSTRAP_OWNER_PASSWORD was not set before the first
startup.
Fix:
- Set both variables in
.env - Restart the API:
docker compose restart api - Check logs to confirm the account was created:
docker compose logs api | grep bootstrap
OpenClaw integration issues
See OpenClaw Troubleshooting for a full list of OpenClaw-specific issues.
Dashboard shows "OpenClaw not configured"
Fix: Add OPENCLAW_WORKSPACE_URL and/or OPENCLAW_GATEWAY_URL to .env and restart the API.
503 on OpenClaw endpoints
Fix: Check that the OpenClaw services are running and accessible. Verify the URLs in .env.
Database issues
Migrations fail on startup
Cause: Database schema is out of sync or migration file is corrupted.
Fix:
- Check API logs:
docker compose logs api | grep migration - Run migrations manually:
docker compose exec api npm run migrate - If the database is corrupted (dev only):
make db-reset(destructive)
"relation does not exist" errors
Cause: Migrations haven't run yet.
Fix: Restart the API — migrations run automatically on startup. Or run manually:
docker compose exec api npm run migrate
Performance issues
API is slow to respond
Cause: Database queries are slow, or the API is under heavy load.
Fix:
- Check database connection count
- Review
ARCHIVE_AFTER_DAYS— archiving old tasks reduces table size - Check if the archiver is running:
docker compose logs api | grep archiver
Getting help
If you can't resolve an issue:
- Check the FAQ
- Review API logs:
docker compose logs api --tail=100 - Check the GitHub issues for known problems