503 Service Unavailable
Web/HTTP
Medium severity
HTTP 503 — Service Unavailable
The server is temporarily unable to handle the request — overload, maintenance mode, or no healthy backends.
Last reviewed 2026-08-29 by the Tech Issue Guide team.
Symptoms
- “503 Service Unavailable” or “Service Temporarily Unavailable.”
- The whole site is down briefly, then recovers.
- It coincides with traffic spikes or a scheduled job.
What causes 503 Service Unavailable
- The application is in maintenance mode (e.g. a framework’s “down” flag).
- The backend pool has no healthy instances, or all workers are busy.
- CPU, memory, or connection limits are exhausted.
- A dependency (database, cache, queue) is unavailable.
How to fix it — 3 steps
- Check whether the app is in maintenance mode or the load balancer shows zero healthy targets, and bring instances back up.
- Inspect CPU, memory, worker count and connection limits; scale out or raise limits to match demand.
- Restart the service, clear any stuck queue or cache, and confirm dependencies are reachable.
Terminal / CLI command
curl -o /dev/null -s -w "%{http_code} %{time_total}s\n" "https://example.com/"
Run it a few times to see whether 503s are constant or intermittent, and how response time behaves.
How to confirm the fix: The site returns 200 steadily, including during the traffic pattern that triggered the 503.
Prevent it from coming back
Right-size autoscaling, add health checks, and use a real maintenance page with Retry-After for planned work.
Frequently asked questions
Is 503 better or worse than 500?
503 is usually transient — the server is up but cannot serve right now. 500 is an actual error in handling the request. 503 with a Retry-After is the polite way to signal maintenance.