Troubleshooting
On-prem Deployment Guide (AWS)
Use this guide to diagnose and resolve common deployment issues. Each issue follows this format: symptom, likely causes, diagnostic commands, resolution steps, and how to verify the fix.
Services Not Starting
Symptom: One or more containers listed by docker ps -a are not in an Up state, or ./deploy.sh --status shows a service as down.
Likely causes: The shared Docker network doesn't exist yet, a dependent service (Redis or RDS) isn't healthy, or a bad .env value.
Diagnostics:
# Check container logs
docker logs <service-name>
# Check Docker status
docker ps -a
# Verify network exists
docker network ls | grep microservices_network
# Check service dependencies
./deploy.sh --statusResolution:
If the network is missing:
docker network create microservices_networkCheck logs for .env errors and fix them
Redeploy:
./deploy.sh --service <name>(Method 1) ordocker-compose up -d(Method 2)
Verify the fix: docker ps shows the service as Up; ./deploy.sh --health <name> returns healthy.
For support: Provide full docker logs <service-name> output, docker ps -a, and your .env (passwords redacted).
Database Connection Issues
Symptom: psql fails to connect, or service logs show a database connection error.
Likely causes: Wrong credentials in .env, RDS security group doesn't allow VM access, or wrong credential phase (root vs. application user) is in use.
Diagnostics:
Resolution:
Confirm RDS security group allows inbound access: verify inbound rules on port 5432 for your VM security group (RDS Database Setup → Step 2)
Confirm correct credential phase in .env: root credentials for migration, application-user credentials for services
Retry the psql command
Verify the fix: The psql command returns a prompt with no error.
For support: Provide the exact psql error text and which credential phase is in .env.
ECR Pull Failed
Symptom: docker login or docker pull/docker-compose pull fails with an authentication or authorization error.
Likely causes: AWS credentials weren't configured or have expired, or (Option B) the registry URL in docker-compose.yml/deploy.sh doesn't match your ECR.
Diagnostics:
Resolution:
Re-authenticate with ECR:
If credentials expired, run:
aws configurewith correct credentialsIf using Option B, confirm all ECR references in your configuration match your own ECR registry
Verify the fix: docker login returns "Login Succeeded".
For support: Provide the exact error from docker login and the account ID output from aws sts get-caller-identity (passwords/keys redacted).
./deploy.sh Not Found
Likely causes: Not in the right directory, installer package wasn't fully downloaded/unzipped, or deploy.sh exists but isn't executable.
Diagnostics:
Resolution:
Change to the installer directory:
cd /opt/hivel-onprem(all commands must run from here)If deploy.sh is missing, re-download and re-extract the installer (Project Setup)
If present but not executable:
chmod +x deploy.sh
Verify the fix: ./deploy.sh --help runs and prints the command reference with no "not found" error.
For support: Provide output of pwd and ls -la in the installer directory, and confirm the hivel-onprem package was successfully downloaded and unzipped.
Migration Failed
Symptom: flyway-migration exits with a non-zero code, or logs show an error instead of "Successfully applied X migration(s)".
Likely causes: .env has application-user credentials instead of root/master credentials, or the insightly database doesn't exist yet.
Diagnostics:
Resolution:
Confirm root/master credentials (not application-user) are in .env (Environment Configuration, Phase 1)
Confirm the database exists (RDS Database Setup → Step 3)
Re-run:
./deploy.sh --service flyway-migration
Verify the fix: docker inspect flyway-migration --format='{{.State.ExitCode}}' returns 0.
For support: Provide full docker logs flyway-migration output.
Wrong Credentials After Migration
Symptom: Services fail to connect to the database immediately after a successful migration.
Likely cause: .env was never switched from root/master credentials to application-user credentials.
Diagnostics:
Resolution:
Update .env to Phase 2 credentials (application-user, not root) from Environment Configuration
Restart services:
./deploy.sh --restart
Verify the fix: Affected services report healthy in ./deploy.sh --health.
For support: Provide service logs showing the original authentication failure.
Port Already in Use
Symptom: A service fails to start with "address already in use" or "port is already allocated" error.
Likely cause: Another process on the VM is already bound to the port a Hivel service needs.
Diagnostics:
Resolution:
Stop or reassign the process already using the port:
sudo kill -9 <PID>Redeploy:
./deploy.sh --service <name>
Verify the fix: The service starts and shows Up in docker ps.
For support: Provide the output of sudo lsof -i :<port> before you resolved it, if the cause wasn't obvious.
Health Checks Failing
Symptom: ./deploy.sh --health reports a service as unhealthy even though it's running.
Likely causes: The service needs more startup time (especially on first deploy), or the VM is resource-constrained.
Diagnostics:
Resolution:
If newly deployed, wait 2–3 minutes for services to stabilize
If resource-constrained, verify your VM meets EC2 Instance Requirements
Inspect service logs for specific errors and address them directly
Verify the fix: ./deploy.sh --health <name> reports healthy.
For support: Provide output of ./deploy.sh --logs <service-name> and docker stats at time of failure.
Log Rotation Not Working
Symptom: Logs aren't appearing under /var/log/hivel/, or old logs aren't being cleaned up.
Likely causes: The setup script wasn't run, the cron job didn't install, or the rotation script lost execute permission.
Diagnostics:
Resolution:
If cron job is missing:
sudo ./scripts/setup-log-rotation.shIf permissions were lost:
chmod +x scripts/docker-log-rotate.shOptionally test manually:
sudo ./scripts/docker-log-rotate.sh
Verify the fix: sudo crontab -l lists the rotation job; ls -la /var/log/hivel/ shows per-service directories.
For support: Provide output of sudo crontab -l and the result of running sudo ./scripts/docker-log-rotate.sh manually.
Next Steps
If debugging is complete, continue to Backup and Restore to set up ongoing operations.
Last updated