Troubleshooting
Common issues and solutions organized by deployment stage.
Installation Issues
Issue: "Native Windows is not supported"
Cause: Running the install on Windows outside WSL2
Solution:
- Install WSL2
- Install Ubuntu from the Microsoft Store
- Open an Ubuntu terminal and start the install again from licensing.ekai.ai
The install must be run inside WSL2. Native Windows PowerShell/CMD is not supported.
Issue: "Missing required tools" (GCP)
Cause: GCP dependencies not installed
Solution:
Accept the auto-install prompt when offered, or install the tools yourself using the official documentation linked in Prerequisites.
Issue: "GCP authentication failed"
Cause: gcloud CLI not authenticated or wrong project
Solution:
gcloud auth login
Issue: Installation interrupted or timed out
Cause: Network disconnection, system sleep, or long-running operation timeout
Solution:
Return to licensing.ekai.ai and follow the install instructions again.
When prompted, choose to resume the previous deployment:
Found previous run artifacts for GCP env 'production'.
Retry that deploy instead of starting a new one? [y/N]: y
The install automatically resumes from the last successful step. It is safe to retry multiple times.
Local Deployment Issues
Issue: "Docker daemon not running"
Cause: Docker is not started
Solution:
# macOS
# Start Docker Desktop from Applications
# Linux
sudo systemctl start docker
sudo systemctl enable docker
# Verify
docker ps
Issue: "Port 80 already in use"
Cause: Another service (Apache, Nginx, etc.) is using port 80
Solution:
Option 1 - Stop conflicting service:
# Find process using port 80
sudo lsof -i :80
sudo netstat -tulpn | grep :80
# Stop the service (example for Apache)
sudo systemctl stop apache2
Option 2 - Use different port:
Edit docker-compose.yml:
services:
ekai-frontend:
ports:
- "8080:80" # Changed from "80:80"
Then access ekai at http://localhost:8080
Issue: Containers keep restarting
Cause: Application errors or resource constraints
Solution:
# Check logs for specific errors
docker-compose logs
# Check resource usage
docker stats
# Common fixes:
# 1. Increase Docker memory/CPU limits
# 2. Fix environment variable issues
# 3. Ensure database is healthy before backend starts
GCP Deployment Issues
Issue: Terraform errors during provisioning
Symptoms: Deployment fails during infrastructure creation
Diagnosis:
# Check Terraform state
cd .self-deploy/terraform-google-ekai/
terraform state list
# View detailed error
terraform plan
Common Solutions:
-
Quota exceeded:
- Check GCP Console → IAM & Admin → Quotas
- Request quota increase if needed
-
Permission denied:
# Verify your account permissions
gcloud projects get-iam-policy YOUR_PROJECT_ID \
--flatten="bindings[].members" \
--filter="bindings.members:user:YOUR_EMAIL" -
Resource already exists:
- Safe to re-run installer (Terraform is idempotent)
- Or manually import existing resources
Issue: SSL certificate not provisioning
Symptoms: "Certificate not trusted" warnings or HTTP (not HTTPS)
Diagnosis:
kubectl describe certificate -n ekai
kubectl logs -n cert-manager deployment/cert-manager
Solution:
-
Wait longer: Let's Encrypt provisioning takes 10-15 minutes
-
Verify DNS records:
dig ekai.yourcompany.com
# Should return the LoadBalancer IP -
Check cert-manager logs:
kubectl logs -n cert-manager deployment/cert-manager
# Look for ACME challenge errors -
Manual troubleshooting:
# Delete and recreate certificate
kubectl delete certificate ekai-tls -n ekai
# Wait for automatic recreation
Issue: DNS not resolving
Symptoms: Domain doesn't reach the application
Diagnosis:
dig ekai.yourcompany.com
nslookup ekai.yourcompany.com
Solution:
-
Verify DNS records exist:
- Check your DNS provider's console
- Ensure A records point to LoadBalancer IP
-
Get LoadBalancer IP:
kubectl get svc -n ekai ekai-ingress \
-o jsonpath='{.status.loadBalancer.ingress[0].ip}' -
Wait for propagation:
- DNS propagation can take up to 48 hours
- Typically completes in 5-10 minutes
- Use dnschecker.org to monitor
-
Flush local DNS cache:
# macOS
sudo dscacheutil -flushcache
# Linux
sudo systemd-resolve --flush-caches
# Windows (in Admin CMD)
ipconfig /flushdns
Issue: Pods not starting
Symptoms: Pods stuck in "Pending" or "CrashLoopBackOff"
Diagnosis:
kubectl get pods -n ekai
kubectl describe pod <pod-name> -n ekai
kubectl logs <pod-name> -n ekai
Common Causes & Solutions:
-
Insufficient cluster resources:
# Check node resources
kubectl top nodes
# Scale cluster if needed
gcloud container clusters resize ekai-production-gke \
--num-nodes=5 \
--region=us-central1 -
Image pull errors:
- Check image repository access
- Verify service account permissions
-
Configuration errors:
- Check ConfigMaps and Secrets
- Verify environment variables
Network & Firewall Issues
Issue: Cannot access frontend from outside
Cause: Firewall blocking required ports
Solution:
Local:
# Allow Docker ports (if firewall enabled)
sudo ufw allow 80/tcp
sudo ufw allow 3000/tcp
GCP:
# Check firewall rules
gcloud compute firewall-rules list
# LoadBalancer should auto-configure ingress
# If issues persist, check Load Balancer configuration in GCP Console
Issue: Slow performance or timeouts
Symptoms: Pages load slowly, API timeouts
Diagnosis:
# Local
docker stats
# Cloud
kubectl top pods -n ekai
kubectl top nodes
Solutions:
-
Increase allocated resources:
Local - Edit
docker-compose.yml:ekai-backend:
deploy:
resources:
limits:
memory: 4G
cpus: "2" -
Scale up (Cloud):
kubectl scale deployment ekai-backend --replicas=3 -n ekai -
Check database performance:
- Review slow query logs
- Check connection pool settings
- Increase database resources if needed
Getting Help
If your issue isn't covered here:
-
Gather Information:
- Deployment mode (local/cloud)
- Operating system and version
- Complete error messages
- Relevant logs (last 100 lines minimum)
- Steps to reproduce
-
Check Logs:
# Local
docker-compose logs > logs.txt
# Cloud
kubectl logs deployment/ekai-backend -n ekai --tail=500 > backend-logs.txt
kubectl logs deployment/ekai-frontend -n ekai --tail=500 > frontend-logs.txt -
Contact Support:
- Email: support@ekai.ai
- Include all gathered information and logs
- Specify urgency and impact
Next Steps
- FAQ — Frequently asked questions
- Post-Installation — Setup and operations guide
- Prerequisites — Review requirements