HTTP 503 — Service Unavailable
HTTP 503
Service Unavailable
The server is temporarily unable to handle the request, usually because it is overloaded or in maintenance.
What 503 actually means
The server is up and answering, but it is deliberately declining work right now. That is the difference from a 500: nothing is broken, the capacity or the willingness is temporarily absent. It is the correct code for planned maintenance and for load shedding, and it should carry a `Retry-After` header saying when to come back — which also tells search engines to hold off rather than deindex the page.
Common causes
- Planned maintenance with a maintenance page enabled
- The server overloaded and shedding requests
- An autoscaling group with no healthy instances
- A worker pool or connection pool exhausted
- A dependency the app needs — a database or cache — being unreachable, with the app failing fast
- A traffic spike, whether organic or a denial-of-service attack
If you're just trying to view the page
- Wait and try again — this one really is temporary by definition
- Check the site's status page or social accounts for a maintenance notice
- Avoid rapid refreshing; if the site is overloaded, retries make it worse
- Nothing on your side needs changing
If it's your site
- Always send `Retry-After` with a 503 — it keeps search engines from treating the outage as removal and tells clients when to return
- Check whether it is genuine overload or a failing dependency; the fixes are opposite
- Look at connection and worker pool saturation, and at queue depth, before adding capacity blindly
- Serve a static maintenance page from the edge so the origin is not carrying the load of its own error page
- Set up autoscaling and load shedding so overload degrades gracefully instead of collapsing
Reference
- Status code
- 503
- Reason phrase
- Service Unavailable
- Category
- 5xx — Server Error
- Cacheable by default
- No
- Defined in
- RFC 9110 §15.6.4
Common questions
- What does HTTP 503 mean?
- The server is temporarily unable to handle the request, usually because it is overloaded or in maintenance. The server is up and answering, but it is deliberately declining work right now. That is the difference from a 500: nothing is broken, the capacity or the willingness is temporarily absent.
- How do I fix a 503 error?
- Wait and try again — this one really is temporary by definition
- Is 503 a client error or a server error?
- 503 is in the 5xx range, which means server error. The request was acceptable but the server could not fulfil it, so retrying later can succeed.
Related pages
- 500 Internal Server Error Something went wrong on the server and it has no more specific code to describe
- 502 Bad Gateway A proxy or gateway reached the server behind it and got back a broken response,
- 504 Gateway Timeout A proxy or gateway waited for the server behind it and gave up before an answer
- 524 A Timeout Occurred Cloudflare connected to the origin successfully but the origin did not finish re
- 521 Web Server Is Down Cloudflare could not connect to the origin server because it refused the connect
- 522 Connection Timed Out Cloudflare tried to open a connection to the origin server and never got a reply
- 520 Web Server Returned an Unknown Error Cloudflare reached the origin server but got back a response it could not make s
- 525 SSL Handshake Failed The TLS handshake between Cloudflare and the origin server failed.
- 526 Invalid SSL Certificate The origin server presented a TLS certificate that Cloudflare could not validate
- 530 Origin DNS Error A Cloudflare error shown alongside a 1xxx error code that carries the real expla
- 501 Not Implemented The server does not support the functionality needed to fulfil the request, usua
- 511 Network Authentication Required You need to log in to the network itself — this is a captive portal, not the sit