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?

  1. Check whether a maintenance mode or deployment was running when the error appeared.
  2. Look at resource use at that moment: CPU, memory, worker or connection-pool limits, and the database’s connection count.
  3. On a load balancer, check the health-check status of each backend server.
  4. 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.
Got a different error? Paste it into the Explain This Error tool → Identifies the family and the fix — runs locally, nothing uploaded.

Related errors