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

  1. Check whether the app is in maintenance mode or the load balancer shows zero healthy targets, and bring instances back up.
  2. Inspect CPU, memory, worker count and connection limits; scale out or raise limits to match demand.
  3. 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.

Related error codes

Back to the error-code search tool