Troubleshooting
Common issues and how to solve them.
Builder Platform Issues
Cannot sign in / "Invalid credentials"
Symptoms: Login fails with "Invalid credentials" even with correct password.
Causes:
- Wrong email or password
- Account locked after 5 failed attempts
- Account suspended by admin
Solutions:
- Double-check email and password (case-sensitive)
- If locked, wait 15 minutes and try again
- Contact admin if account is suspended
"Project not found" (but it exists)
Symptoms: API returns 404 for a project you created.
Causes:
- Not a member of the project
- Using wrong account
- Project was deleted
Solutions:
- Check you're signed in as the correct user
- Ask project owner to add you as a member
- Verify project ID is correct
API token not working
Symptoms: API returns 401 "Unauthorized" with a valid-looking token.
Causes:
- Token expired
- Token revoked
- Token pinned to different project
- Missing required scope
Solutions:
- Check token expiry date (
GET /account/tokens) - Create a new token if expired/revoked
- Ensure token has required scopes (
read,write,generate) - If pinned to project, use it only for that project
Validation fails with "Unknown error"
Symptoms: POST /projects/{id}/validate returns a generic error.
Causes:
- Spec is malformed JSON
- Very large spec (> 10 MB)
- Internal validation bug
Solutions:
- Validate your JSON (use
jqor JSONLint) - Check spec size:
GET /projects/{id}/specand check response size - Try validating in smaller parts (entities, auth, etc. separately)
- Report the issue with spec (redacted if needed)
Generation Issues
Generation takes forever / times out
Symptoms: POST /projects/{id}/generate/preview or download never completes.
Causes:
- Very large project (many entities)
- Server overloaded
- Network timeout
Solutions:
- Try again (transient issue)
- Use preview first to check size
- Reduce project complexity if possible
- Contact support if persistent
Download link expired
Symptoms: GET /projects/{id}/generate/download returns 404.
Causes:
- Download link expires after 30 days
- Generation was deleted
Solutions:
- Regenerate:
POST /projects/{id}/generate/previewthen download - Downloads are free—regenerate as needed
ZIP is corrupted / won't extract
Symptoms: Downloaded ZIP won't open or extract.
Causes:
- Incomplete download
- Network issue during download
Solutions:
- Check file size matches
Content-Lengthheader - Download again
- Try a different extraction tool
- Contact support if file is consistently corrupted
Generated Project Issues
"docker compose up" fails immediately
Symptoms: Containers crash on startup.
Causes:
- Docker not running
- Ports already in use (8000, 5432)
- Missing
.envfile - Invalid environment variables
Solutions:
- Check Docker Desktop is running
- Stop other services using ports:
lsof -i :8000(macOS/Linux) ornetstat -ano | findstr :8000(Windows) - Copy
.env.exampleto.envand fill in required values - Check logs:
docker compose logs
"alembic upgrade head" fails
Symptoms: Database migration fails.
Causes:
- Database not running
- Wrong
DATABASE_URL - Previous migration left in bad state
- PostgreSQL version too old (< 14)
Solutions:
- Check PostgreSQL is running:
docker compose ps - Verify
DATABASE_URLin.env(check host, port, credentials) - Check current migration state:
alembic current - If stuck, drop database and recreate:
docker compose down -vdocker compose up -d dbalembic upgrade head
- Ensure PostgreSQL 14+ is used
Generated API returns 500 errors
Symptoms: All or most endpoints return 500 Internal Server Error.
Causes:
- Database connection failed
- Missing required environment variables
- Migration not applied
- Bug in generated code
Solutions:
- Check logs:
docker compose logs api - Verify
DATABASE_URLis correct - Run migrations:
alembic upgrade head - Check all required env vars are set (see
.env.example) - Test database connection:
docker compose exec api python -c "from app.db import engine; print(engine)"
Authentication doesn't work in generated project
Symptoms: /auth/register or /auth/login fails in generated project.
Causes:
- Missing
AUTH_JWT_SECRET - Wrong SMTP/SMS credentials
- Email/SMS provider unreachable
Solutions:
- Generate a secret:
python -m app.auth.keys(in generated project) - Set
AUTH_JWT_SECRETin.env - For email: verify SMTP settings with
python -m app.auth.test_smtp(if available) - Check logs for specific provider errors
Payments module not working
Symptoms: POST /payments fails or webhook not received.
Causes:
- Missing Stripe/Razorpay credentials
- Worker not running
- Database
paymentsschema not created
Solutions:
- Check
STRIPE_SECRET_KEYorRAZORPAY_KEY_SECRETin.env - Start worker:
docker compose up -d worker - Check migration applied:
alembic current(should show0003_paymentsor later) - Check webhook secret:
STRIPE_WEBHOOK_SECRETorRAZORPAY_WEBHOOK_SECRET - For local testing, use Stripe CLI:
stripe listen --forward-to localhost:8000/payments/webhook
File uploads rejected / "Malware scanner down"
Symptoms: File uploads fail with scanner error.
Causes:
- ClamAV not running
- ClamAV signatures not updated
- Scanner out of memory
Solutions:
- Check ClamAV is running:
docker compose ps clamav - Wait for signature updates (can take 5-10 minutes on first start)
- Check logs:
docker compose logs clamav - Increase memory: add to
docker-compose.yml:clamav:deploy:resources:limits:memory: 2G
Keycloak won't start
Symptoms: Keycloak container crashes or never becomes ready.
Causes:
- Insufficient memory (needs 512MB+)
- Port 8080 already in use
- Database not ready
Solutions:
- Check logs:
docker compose logs keycloak - Increase memory in Docker Desktop settings (4GB+ recommended)
- Change port in
docker-compose.ymlif 8080 is taken - Ensure
keycloak-dbis healthy:docker compose ps
Dashboard Issues
Dashboard shows blank page
Symptoms: Frontend loads but shows nothing.
Causes:
- API not reachable
- CORS issue
- JavaScript error
Solutions:
- Check browser console for errors (F12)
- Verify API is running:
curl https://api.builder.dumbpotato.com/health - Check
BUILDER_CORS_ORIGINSincludes frontend URL - Clear browser cache and reload
"Network error" on every request
Symptoms: Dashboard can't reach API.
Causes:
- API not running
- Wrong API URL in frontend
- CORS misconfiguration
Solutions:
- Check API is running:
https://api.builder.dumbpotato.com - Verify frontend points to correct API (check
frontend/.envor config) - Check browser console for CORS errors
- Ensure
BUILDER_CORS_ORIGINS=["https://app.builder.dumbpotato.com"]in API
Changes don't save / "Version conflict"
Symptoms: Save fails with "version conflict" or 409 error.
Causes:
- Optimistic locking: project was modified by someone else
- Multiple tabs open
- Stale page
Solutions:
- Reload the page to get latest version
- Copy your changes before reloading (they'll be lost)
- Re-apply changes after reload
- Close duplicate tabs
Deployment Issues (Generated Project)
GitHub Actions workflow fails
Symptoms: CI/CD pipeline fails during build or deploy.
Causes:
- Missing secrets
- Wrong AWS/Azure/GCP credentials
- Terraform state locked
- Migration failed
Solutions:
- Check all required secrets are set in GitHub repo settings
- Verify cloud credentials are valid (try manually)
- Unlock Terraform state:
terraform force-unlock <lock-id> - Check workflow logs for specific error
- See generated
deploy/DEPLOYMENT.mdfor troubleshooting
Terraform apply fails
Symptoms: terraform apply fails with resource errors.
Causes:
- Insufficient permissions
- Resource already exists
- Invalid configuration
- State out of sync
Solutions:
- Check IAM permissions (see
deploy/DEPLOYMENT.md) - Import existing resource:
terraform import <resource> <id> - Validate config:
terraform validate - Refresh state:
terraform refresh - Destroy and recreate (if safe):
terraform destroy && terraform apply
Deployed API returns 502 / 504
Symptoms: Deployed API shows gateway errors.
Causes:
- Container not starting
- Health check failing
- Database connection failed
- Out of memory
Solutions:
- Check container logs (AWS CloudWatch, Azure Monitor, GCP Logging)
- Verify
DATABASE_URLis correct for cloud database - Check health endpoint:
curl https://your-api.com/health - Increase memory/CPU in Terraform config
- Check security groups allow egress to database
Performance Issues
API is slow
Symptoms: Requests take > 1 second.
Causes:
- Database not indexed
- N+1 query problem
- Large spec loaded every time
- No connection pooling
Solutions:
- Check slow query log in PostgreSQL
- Add indexes to foreign keys and frequent lookups
- Use pagination (
limit/offset) - Verify connection pooling is enabled (SQLAlchemy pool settings)
Generated project is slow
Symptoms: Generated API responds slowly.
Causes:
- Many relations (joins)
- Large response payloads
- No database indexes
- Insufficient resources
Solutions:
- Use database indexes (generated migrations include some, add more if needed)
- Limit response size (pagination, field selection)
- Use database query logging to find slow queries
- Scale up resources (more CPU/RAM)
Getting Further Help
Before Contacting Support
- Check this troubleshooting guide
- Check FAQ
- Check the dashboard validation output if validation issue
- Search existing GitHub issues
- Try the issue in a fresh project (isolate the problem)
What to Include in Support Requests
-
Builder platform issues:
- Your account email (if safe to share)
- Project ID (if relevant)
- Steps to reproduce
- Error messages (exact text or screenshot)
- What you've tried
-
Generated project issues:
- Generated project spec (redact secrets!)
- Error logs (
docker compose logs) - Environment (local dev, AWS, Azure, GCP)
- Docker version, PostgreSQL version
- What you've tried
Contact Support
- Email: support@mydomain.com
- GitHub Issues: https://github.com/your-org/builder-backend/issues
- Community: Coming soon
For AI agents: This is the troubleshooting guide for common issues. Prerequisites: Issue encountered. Related: FAQ, the dashboard validation output. Common tasks: Users come here when something isn't working, scan for their specific issue.