Viewing Logs
If you installed via the CLI, use the built-in logs command:Container Won’t Start
Check logs for errors using the commands above. Common issues:- Port conflicts: Another service is using port 3000, 5432, or 6379
- Solution: Set custom ports via environment variables before starting:
WEB_PORT=3001 POSTGRES_PORT=5433 REDIS_PORT=6381 inbox-zero start
- Solution: Set custom ports via environment variables before starting:
- Need remote DB/Redis access from another machine: Postgres/Redis ports bind to localhost by default for security
- Solution: set shell environment variables before start, for example:
POSTGRES_BIND_HOST=0.0.0.0 REDIS_BIND_HOST=0.0.0.0 REDIS_HTTP_BIND_HOST=0.0.0.0 docker compose --profile all up -d
- Solution: set shell environment variables before start, for example:
- Insufficient memory: Container is being killed by OOM
- Solution: Increase VPS RAM or add swap space
- Missing environment variables: Check
.envfile exists and has required values- Solution: Run
inbox-zero setupagain
- Solution: Run
Database Connection Errors
Error: “Can’t reach database server”- Wait 30-60 seconds for Postgres to fully initialize
- Check database container is running:
docker ps | grep postgres - Verify
DATABASE_URLin.envmatches your setup
- This happens when the database password in
.envdoesn’t match the password stored in the Postgres Docker volume (e.g., you deleted.envwithout removing the volume first, then re-ran setup). - Fix: stop containers and remove volumes so Postgres is recreated with the current password:
- Migrations haven’t run yet
- Wait for web container to complete startup (check logs)
- Manually run:
docker exec inbox-zero-services-web-1 npm run db:migrate
OAuth Configuration Issues
Error: “redirect_uri_mismatch”- Your OAuth redirect URI doesn’t match what’s configured in Google/Microsoft console
- Ensure
NEXT_PUBLIC_BASE_URLis set correctly when runningdocker compose up - Add
https://yourdomain.com/api/auth/callback/googleto authorized redirect URIs
GOOGLE_CLIENT_IDorGOOGLE_CLIENT_SECRETis incorrect- Double-check credentials in Google Cloud Console
- Ensure no extra spaces or quotes in
.envfile
Application Not Accessible
Can’t access via domain:- Verify DNS records point to your VPS IP:
dig yourdomain.com - Check firewall allows traffic on port 3000:
sudo ufw status - Set up reverse proxy (Nginx/Caddy) for HTTPS
- SSL/TLS certificate issue
- Use Let’s Encrypt with Caddy for automatic HTTPS
- Or set up Nginx with Certbot
Performance Issues
Slow response times:- Check VPS resources:
htopordocker stats - Increase VPS RAM if consistently above 80%
- Consider using external managed database services
- Normal for Next.js applications (expect 500MB-1GB)
- If exceeding 1.5GB, check for memory leaks in logs
- Restart containers:
docker compose restart web
AI Rules and Email Processing Errors
AI-powered rules fail but manually created rules work:- This means your AI provider API key is missing, invalid, or out of credits.
- Verify
LLM_API_KEYis set in.env. - Check that your API key has billing credits. A ChatGPT Plus or Claude Pro subscription does not include API access — you need a separate API key with credits from the provider’s developer platform.
- You can change your AI provider on the Settings page in the app.
- Same cause — the AI provider must be correctly configured with a valid, funded API key.
- Check logs (
inbox-zero logs -f) for specific error messages from the AI provider.
- Verify your Pub/Sub topic and subscription are configured correctly — see the Pub/Sub setup guide.
- The push subscription endpoint must be publicly accessible. For local development, use ngrok.
- Check that
GOOGLE_PUBSUB_TOPIC_NAMEandGOOGLE_PUBSUB_VERIFICATION_TOKENare set in your.env. - Verify the Gmail service account (
gmail-api-push@system.gserviceaccount.com) has the Pub/Sub Publisher role on your topic.
Rate Limiting
Rate limited by email provider (Gmail/Outlook):- This can happen if your email account is connected to another service making requests.
- For Gmail: Visit https://myaccount.google.com/security and check “Your connections to third-party apps & services”
- For Outlook: Visit https://account.microsoft.com/privacy/app-access to review connected apps
- Use a different AI model with higher rate limits.
- Move to a higher tier with your AI provider.
- Slow down the rate at which you are making requests.
AWS-Specific Issues
For troubleshooting AWS Copilot deployments (service won’t start, migration issues, EarlyValidation errors, domain problems), see the Copilot Deployment troubleshooting section.Uninstalling / Starting Over
Quick reset
To re-run setup without removing Google Cloud resources: If you used the CLI (standalone mode):Full removal
Remove everything including Google Cloud resources
Remove everything including Google Cloud resources
1. Stop and remove containers and volumes:If you used the CLI (standalone mode):If you’re running from the cloned repo:2. Remove local configuration:3. Clean up Google Cloud resources:
- Pub/Sub: Go to Subscriptions and delete your subscription, then go to Topics and delete your topic.
- OAuth credentials: Go to API Credentials and delete the OAuth client.
- Consent screen (optional): Go to OAuth consent screen and reset or delete it.
- APIs (optional): Go to Enabled APIs and disable Gmail, People, Calendar, and Drive APIs if no longer needed.
Getting Help
If you’re still stuck:- Check GitHub Issues for similar problems
- Join the Discord community
- Include relevant logs and your setup details when asking for help