HTTPfy

503 Service Unavailable

The server is temporarily unable to handle the request (overload or maintenance).

503 at a glance

Code
503
Name
Service Unavailable
Class
5xx Server error
Status
IANA-registered standard code
Defined in
RFC 9110, Section 15.6.4
Cacheable by default
No by default. Caches store it only when the response carries explicit freshness (Cache-Control max-age, s-maxage or Expires).

What 503 means

503 Service Unavailable means the server is up but cannot serve right now, and expects to recover. A Retry-After header tells clients and crawlers when to come back. Search engines treat short 503 periods as temporary and do not drop pages, which makes 503 the correct status for planned maintenance.

What typically causes a 503

  • Maintenance mode (WordPress .maintenance, Laravel php artisan down).
  • Overload: worker pools, connection limits or queues exhausted.
  • nginx limit_req/limit_conn, whose default rejection status is 503.
  • AWS ALB with no registered targets in the target group; Kubernetes ingress-nginx when a Service has no ready endpoints.
  • Varnish "Error 503 Backend fetch failed" when the backend is down or too slow.
  • Autoscaling lag during a traffic spike.

Fix it on the server

  • Send Retry-After during maintenance, and keep maintenance pages short-lived.
  • If you rate-limit, prefer 429 (set limit_req_status 429;) so clients know it is about them, not the server.
  • Check health checks and endpoints: a single failing readiness probe can take every pod out of rotation.

Fix it as a client or visitor

  • Retry after the Retry-After interval with backoff; do not hammer an overloaded server.
  • Check the service's status page.

Headers that go with 503

HeaderRole
Retry-AfterWhen to retry, in seconds or as a date.

Example response

HTTP/1.1 503 Service Unavailable
Retry-After: 120
Content-Type: text/html

<h1>Down for maintenance, back in 2 minutes</h1>

Opens the HTTP headers tool with your URL filled in; it shows the status line and headers of every redirect hop.