Health Checks
Configure liveness and readiness probes for your applications.
Health checks ensure your application is running correctly and ready to receive traffic. Convoy Cloud uses Kubernetes liveness and readiness probes to monitor your application.
How health checks work
When enabled, Convoy Cloud sends periodic HTTP GET requests to your application:
- Readiness probe — determines whether your app is ready to receive traffic. If the probe fails, the app is temporarily removed from the load balancer.
- Liveness probe — determines whether your app is still running. If the probe fails repeatedly, the container is restarted.
Configuration
Health checks are enabled by default. You can configure them in the Build Configuration step:
- Enable / disable — toggle on or off
- Health check path — the HTTP endpoint to probe (default:
/)
Probe settings
| Probe | Initial delay | Check interval |
|---|---|---|
| Readiness | 10 s after container start | Every 5 s |
| Liveness | 30 s after container start | Every 10 s |
These values are platform-wide and not configurable from the dashboard.
Requirements
Your application must respond to HTTP GET requests on the health check path with a 2xx or 3xx status code.
// Express.js
app.get('/', (req, res) => res.status(200).send('OK'));# Flask
@app.route('/')
def health():
return 'OK', 200// Go
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
})When to disable health checks
Disable if your application:
- Does not serve HTTP traffic (background worker, queue consumer)
- Has a long startup time that causes probes to fail before the app is ready
- Does not have a suitable HTTP endpoint
Troubleshooting
If your application keeps restarting:
- Verify your app responds to HTTP GET on the configured path with a 2xx/3xx status.
- Ensure your app listens on the configured port (default:
8080) and binds to0.0.0.0. - If startup takes longer than 10 seconds, try disabling health checks temporarily.
- Check the Logs Explorer for startup errors.