No healthy targets: when the load balancer has nowhere to send traffic
A load balancer only sends traffic to targets that pass their health checks. When none pass, it has nowhere to send requests and answers 503 itself.
What causes it
This usually follows a cascade: one target fails, its traffic moves to the others, they overload and fail too. Or all targets share a single dependency — a zone, a database, a bad deploy — that took them down together.
How to recognise it
- Load balancer 503s with zero healthy targets
- Targets failing one after another, not all at once
- All targets in the same zone or running the same new version
Error messages you will see
| Error | Seen in |
|---|---|
503 Service Unavailable | Users, Router, Server, Database, Cache, Queue and 215 more |
How to fix it
- Restart or add targets
- Spread targets across zones
- Enable automatic restarts
Reproduce it in the simulator
Open the simulator, build a small architecture and use Fault injection in the inspector, or push traffic past a component’s capacity.
Learn more
Part of the guide Load balancing and capacity planning.