Troubleshooting
Worker won’t start
Section titled “Worker won’t start”# Check gateway logs first (it launches worker containers on demand)docker compose -f docker/docker-compose.yml logs -f gateway
# List spawned worker containers# (the compose `worker` service only builds the image; it does not stay running)docker ps --format '{{.Names}}' | grep lobu-worker || true
# Common causes:# - Port 8080 already in use → Change GATEWAY_PORT in .env# - Docker network conflict → docker compose down -v && docker compose up -d# - Invalid lobu.toml → npx @lobu/cli@latest validateAgent not responding
Section titled “Agent not responding”# Check if gateway is runningcurl http://localhost:8080/health
# Check Redis connectiondocker compose -f docker/docker-compose.yml exec redis redis-cli ping
# Clear stale chat history (for stuck conversations)docker compose -f docker/docker-compose.yml exec redis redis-cli KEYS 'chat:history:*'docker compose -f docker/docker-compose.yml exec redis redis-cli DEL 'chat:history:{key}'
# Recreate gateway after .env changes# (`restart` does not reload env-file values)docker compose -f docker/docker-compose.yml up -d --force-recreate gatewayMCP tools failing
Section titled “MCP tools failing”# Check MCP status at /api/docs on your gateway# Verify worker can reach gatewaydocker compose -f docker/docker-compose.yml exec worker curl -v http://gateway:8080/health
# For OAuth flows: check browser console and gateway logs# For static headers: verify ${env:VAR} syntax in mcpServers configPlatform connection issues
Section titled “Platform connection issues”Platform connections are usually configured from the Connections UI or the /api/v1/connections API, not by editing per-platform env vars in docker-compose.yml.
Slack: Reconnect or reinstall the workspace after adding scopes. If you use Slack OAuth install flows on a self-hosted gateway, also verify SLACK_CLIENT_ID and SLACK_CLIENT_SECRET on the gateway.
Telegram: Verify the bot token and webhook / polling settings in the connection config. Webhook mode still needs a public HTTPS URL.
Discord: Verify the bot token, configured intents, and guild ID in the connection settings.
WhatsApp: Confirm the configured phone number is verified in Meta and matches the connection settings.
Network policy blocking requests
Section titled “Network policy blocking requests”# Check what domains are allowedecho $WORKER_ALLOWED_DOMAINS
# Temporarily allow all (for testing only)export WORKER_ALLOWED_DOMAINS="*"docker compose -f docker/docker-compose.yml restart gateway
# Proper format: exact domain or .wildcard# api.example.com - only this domain# .example.com - all subdomainsWorker can’t reach the internet
Section titled “Worker can’t reach the internet”By design, workers have no direct internet access. All traffic routes through the gateway proxy.
# Verify proxy is reachabledocker compose -f docker/docker-compose.yml exec worker curl -v http://gateway:8118
# Check if domain is in allowlist# See "Network policy blocking requests" aboveOut of memory / disk space
Section titled “Out of memory / disk space”# Check worker statsdocker stats
# Clean up old workspaces (Docker)docker compose -f docker/docker-compose.yml down -vrm -rf workspaces/*
# For K8s: check PVC usagekubectl get pvc -n lobukubectl describe pvc <pvc-name> -n lobuOwletto connection issues
Section titled “Owletto connection issues”# Verify local Owletto is running (if you're using owletto-local)curl http://localhost:8787/health
# Check file-first memory config# - lobu.toml should contain [memory.owletto] with enabled = true and an org# - MEMORY_URL is optional; use it mainly for local/custom Owletto base URLs
# Test connectionnpx owletto@latest healthSlow responses
Section titled “Slow responses”# Check trace ID in logs (format: tr-xxx-lx4k-xxx)# Use with Grafana Tempo or OTLP collector
# Common causes:# - Cold worker start → Subsequent requests are faster# - Model latency → Try a different provider/model# - Large prompt context → Clear chat history or increase context windowDocker-specific issues
Section titled “Docker-specific issues”# Clean restartdocker compose -f docker/docker-compose.yml down -vdocker system prune -fdocker compose -f docker/docker-compose.yml up -d
# Rebuild worker image after code changesmake clean-workers # or: docker compose -f docker/docker-compose.yml build --no-cache workerKubernetes-specific issues
Section titled “Kubernetes-specific issues”# Check pod statuskubectl get pods -n lobukubectl describe pod <pod-name> -n lobu
# Worker not scaling?# Check if HPA is hitting min/max replicaskubectl get hpa -n lobu
# PVC stuck in Terminating?kubectl patch pvc <pvc-name> -n lobu -p '{"metadata":{"finalizers":null}}'Still stuck?
Section titled “Still stuck?”- Enable verbose logging:
LOG_LEVEL=debugin.env - Collect logs with trace ID
- Open an issue at github.com/lobu-ai/lobu