Health checks often fail due to firewalls or misconfigured backend server software.
Why does my load balancer respond with an HTTP 503 error?
Validated on 19 Mar 2024 • Last edited on 18 Mar 2026
DigitalOcean Load Balancers return an HTTP 503 error when there are either no target Droplets assigned to the load balancer, or all of the target Droplets are unhealthy.
If all of your target Droplets are correctly assigned to the load balancer, check the following things to see if there is a problem:
- Make sure your Cloud Firewall rules allow the target Droplet to accept traffic from the load balancer.
- Ensure that private networking is enabled on the Droplet and that the Droplet is in the same VPC network as the load balancer. If private networking is not enabled, you can enable it and migrate the Droplet into the target VPC network.
- Ensure the application on your target Droplets is running and listening on the VPC private IP.
- If you have enabled PROXY protocol on the load balancer, check that the application on the target Droplets is configured to expect PROXY protocol.
- Ensure your load balancer’s health check settings match your application.
Related Topics
How to Troubleshoot Load Balancer Health Check Issues
Why do my load balancer's Kubernetes node(s) have the No Traffic status?
Kubernetes service ’externaltrafficpolicy’ field controls how nodes respond to health checks.
Why did all of my backend Droplets become unhealthy when I enabled PROXY protocol on my load balancer?
Enable PROXY protocol support on your Droplets.