What it means: Cloudflare could not reach your origin's IP address at all, because no network route to it worked.
Free online tool — HTTP status code checker: instant results, no signup.
Requests the address and shows the status code and what the server sends back.
Cloudflare documents 523 as: "This error occurs when Cloudflare cannot contact your origin web server", and the common cause as "a network device between Cloudflare and the origin web server does not have a route to the origin's IP address" (Cloudflare: Error 523). The page reads "Origin is unreachable" and carries the 523 status.
It sits one step earlier than its neighbours. With 521 the origin host answered and refused; with 522 packets went out but nothing came back in time. With 523 the path itself is broken: the address Cloudflare has for your origin is not reachable from its network. That makes the origin IP in DNS and the routing around your server the first things to check, not the web server.
| Cause | How to recognise it | Fix |
|---|---|---|
| Wrong or stale origin IP | The proxied A or AAAA record holds an address your server no longer has: a migration, a new VPS, a dynamic home IP | Update the record in the Cloudflare DNS tab |
| Private or internal address in a proxied record | The record points to a 10.x, 192.168.x or similar address that only exists inside your network | Use the server's public address, or connect a private origin with Cloudflare Tunnel instead |
| Broad route capturing Cloudflare's ranges (AWS) | A VPC route such as 172.0.0.0/8 sends replies to Cloudflare's 172.64.0.0/13 into a private destination | Narrow the route, or add a more specific route for 172.64.0.0/13 to the Internet Gateway |
| Routing problem at the host or upstream ISP | Traceroute from the origin to a Cloudflare IP dies inside the provider's network | Open a ticket with the host with an MTR attached |
| Origin network down | The server is unreachable from everywhere, not only from Cloudflare | Restore the network; check the provider's status page |
The AWS case comes straight from Cloudflare's own resolution notes: Cloudflare uses public addresses in 172.64.0.0/13, which an overly broad route for 172.0.0.0/8 captures by mistake (Error 523 resolution).
dig will not show it; open the DNS tab, or list records with the API: curl -s -H "Authorization: Bearer $CF_API_TOKEN" \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records?name=example.com" | grep -o '"content":"[^"]*"'ip -4 addr show scope global and curl -s https://ifconfig.me (the public address, which differs behind NAT).curl -sv --resolve example.com:443:203.0.113.10 https://example.com/ -o /dev/null
# * connect to 203.0.113.10 port 443 failed: No route to host "No route to host" or a timeout from several networks confirms a routing problem.mtr -rwc 50 104.16.0.1, using an address from your own logs rather than this example.172.64.0.0/13 to the Internet Gateway if needed.Most 523 incidents follow a change: a move to a new VPS, a new load balancer, a re-created cloud instance with a fresh public IP, or a home server whose provider assigned a new address overnight. In each case the site worked until the address changed, and the proxied record kept pointing at the old one. Two habits prevent the repeat. First, after any migration, compare the address in every proxied A and AAAA record with the new server, including records for subdomains such as api or www that are easy to forget. Second, for servers on dynamic addresses, do not rely on manual DNS edits at all: either update the record automatically through the Cloudflare API when the address changes, or run Cloudflare Tunnel, which needs no inbound address. Keep the old server reachable for a while after a move, so a missed record shows up as old content rather than as an outage.
curl -s -o /dev/null -w '%{http_code}\n' --resolve example.com:443:203.0.113.10 https://example.com/
# 200
curl -s -o /dev/null -w '%{http_code}\n' https://example.com/
# 200Both requests, direct to the origin and through Cloudflare, must succeed, and the 523 count in Error Analytics must stop growing. The HTTP status checker shows what the proxied URL returns from outside your network; the traceroute tool helps when you need a path from a network other than your own.
HTTP status codes are three-digit numbers that the server returns for every request. They tell the browser and search crawlers what happened: success, redirect, or error.
Enter a code or keyword — instant result with description.
1xx Informational, 2xx Success, 3xx Redirect, 4xx Client Error, 5xx Server Error.
For each code: typical causes and concrete steps to resolve.
How each code affects indexing and link juice transfer in Google.
choosing correct status
redirect optimization
5xx error diagnostics
landing page check
HTTP monitor alerts when response code changes or 5xx appears.
Sign up free522 means Cloudflare sent the connection attempt and got no reply in time. 523 means there was no usable route to the origin's IP address at all.
Yes. If the proxied A or AAAA record holds an old, private or mistyped address, Cloudflare tries to reach an IP that is not reachable and returns 523.
A common cause is a VPC route such as 172.0.0.0/8 that also covers Cloudflare's public range 172.64.0.0/13, so replies never reach Cloudflare. Add a more specific route to the Internet Gateway.
Use Cloudflare Tunnel, which makes an outbound connection from the server to Cloudflare, instead of a proxied DNS record pointing at a private address.
The error code, the time with time zone, the failing URL and an MTR or traceroute from the origin to a Cloudflare IP that used to connect to it.
Free plan — 10 monitors, checks every 5 min, no card required. Upgrade for 1-minute interval and multi-region monitoring.