Error Reference › HTTP
HTTP
503 Service Unavailable
The server is temporarily unable to handle the request — overloaded, down, or in maintenance.
What it looks like
HTTP/1.1 503 Service Unavailable
Retry-After: 120
What does "503 Service Unavailable" mean?
Returned when the server is up but cannot serve right now — during maintenance, when every worker is busy, or when a load balancer has no healthy servers left. It is the correct status for planned downtime, because it tells search engines to come back later.
What causes "503 Service Unavailable"?
- App is restarting or in maintenance mode.
- Out of workers / overloaded.
- Health check failing so the LB pulled it.
How do I confirm the cause?
- Check whether a maintenance mode or deployment was running when the error appeared.
- Look at resource use at that moment: CPU, memory, worker or connection-pool limits, and the database’s connection count.
- On a load balancer, check the health-check status of each backend server.
- Look at the response body and headers — a CDN, hosting or framework maintenance page usually identifies itself, which tells you which layer returned the 503.
How do I fix "503 Service Unavailable"?
- Wait and retry; honor Retry-After.
- Check resource limits and worker counts.
- Confirm health checks pass.
How do I stop it happening again?
- Size worker counts and connection pools for peak traffic, not the average.
- Send Retry-After with planned 503s, and keep maintenance windows short.
- Deploy with rolling or blue-green releases so some servers keep serving while others restart.