Operations & Troubleshooting
Practical diagnosis, log inspection, lock release, and recovery procedures for epd.
1. Deployment Fails on Health Probe
Symptom:
✖ Health check failed on 203.0.113.10: replica did not become healthy within 60s.
Rolling back to live slot...Explanation:
The new version was booted in the idle slot, but requests to healthcheck.path (default: /) did not return an HTTP status in 200-399 before timing out.
Diagnostic Steps:
- Inspect container crash logs:bash
epd logs --service web --lines 100 - Verify application startup speed: If your app takes 45 seconds to compile assets or connect to a database on cold start, increase the timeout in
epd.yml:yamlhealthcheck: path: /health timeout: 90 delay: 5 - Verify port binding: Ensure your app listens on the port configured under
servers.<service>.port(e.g.3000), and binds to0.0.0.0(not127.0.0.1inside Docker).
2. Deployment Lock is Held
Symptom:
✖ Another deployment is currently in progress (lock held by deployer-laptop at 14:22).Explanation:
epd uses an atomic lock file (/var/lib/epd/locks/<app>.lock) to prevent concurrent deployments from colliding. If your computer lost internet connection or was killed with kill -9 mid-deployment, the lock might remain active.
Solution:
# Check lock details:
epd lock status
# Forcefully clear the lock:
epd lock release3. Investigating the Shared Traefik Proxy
If domains are not resolving or returning 404 page not found:
Check Proxy Status:
epd proxy statusView Live Traefik Logs:
epd proxy logs -fInspect Generated Dynamic Routing YAML:
epd proxy routesVerify that your domains, ports, and entrypoints match what you declared in epd.yml.
Reboot Traefik:
If Traefik needs a restart:
epd proxy reboot4. Disaster Recovery & Emergency Rollback
To immediately revert to the previously working build:
epd rollbackTo list all past deployments saved on the server:
epd rollback --listAnd roll back to a specific tagged release:
epd rollback <version>Next Steps
- Explore the CLI Commands Reference
- Review the Complete epd.yml Schema
- Read the GitHub Actions CI/CD Guide