HTTP 503 Service Unavailable

The server is temporarily unable to handle the request — overloaded, or down for maintenance. Often accompanied by Retry-After.

Defined in RFC 9110 §15.6.4 — 503 Service Unavailable · MDN reference

Where you meet HTTP 503 in production

Planned maintenance, a deploy in progress, a dependency that is down, or a load shedder deliberately turning traffic away to protect what is left.

Why you would test it

Unlike a 500, a 503 is explicitly retryable. Test that your client treats them differently instead of collapsing both into "error".

What your client should do about a 503

Retry with backoff, and honour Retry-After when the server sends one — a 503 with a Retry-After is a server telling you precisely when to come back, and ignoring it is how a recovering service is pushed back over. Fail open or degrade gracefully where the call is not essential.

503 versus the codes it gets confused with

Endpoints that return 503

2 endpoints in this playground answer with 503. Every one is free, needs no signup, and can be called from the browser or with curl.

Questions about HTTP 503

Should maintenance pages be 503?
Yes. A maintenance page served as 200 tells search engines the thin page is the real content.
How long should I wait?
As long as Retry-After says. Without it, exponential backoff with jitter and an overall deadline.

Other server error codes

All HTTP status codes · All 39 mock REST APIs · Getting started guide

Last updated