On this page
Advanced
HTTP 4xx response
Your server is reachable and replying, but it's rejecting the request. DomainDash shows the site as Down because it expected a 2xx response and got a 4xx instead.
Symptom
- DomainDash marks the uptime check as Down with error code
http_4xx - Running
curl -I https://example.comreturns a 4xx status code in the first line of the response (e.g.HTTP/2 403,HTTP/2 404,HTTP/2 429) - Visitors may see a "Not Found", "Forbidden", or "Too Many Requests" error page
What it means
A 4xx response code is a "client error" in Hypertext Transfer Protocol (HTTP): the server understood the request but won't or can't process it. Unlike 5xx errors (which indicate a server-side problem), a 4xx means the server itself is working fine — something about this particular request isn't being accepted.
By default, DomainDash treats a successful (2xx) or redirect (3xx) response as healthy, and any 4xx as a Down status, because from a visitor's perspective, the page isn't accessible. The exact code tells you precisely why, so you can go straight to the fix instead of guessing.
Common causes
- 401 Unauthorised — the URL DomainDash is checking requires authentication. The checker is being sent to a login-protected page and can't pass credentials.
- 403 Forbidden — a web application firewall (WAF), Cloudflare bot-detection, or IP allowlist is blocking the checker's request.
- 404 Not Found — the URL has moved, was deleted, or was never correct. A recent deploy may have changed the route.
- 410 Gone — the page was intentionally removed. The target URL needs updating.
- 429 Too Many Requests — rate-limiting is treating the checker as a high-frequency client and throttling it.
How to fix
Identify the exact status code. Run:
bashcurl -I https://example.comThe status code on the first line tells you which cause applies.
Check whether the target URL is correct. Open DomainDash and look at the URL configured for this site. The best URL to check is a publicly accessible endpoint that always returns 200: typically the site root (
/), a dedicated health-check path (/healthor/ping), or a static asset. If the current URL requires login or has moved, update it in the site's settings.For 403, check WAF and bot-detection rules. A firewall may be blocking the checker's HTTP signature. Check your WAF (Cloudflare, AWS WAF, Sucuri) access logs to find the triggered rule. You can test whether the User-Agent is the issue:
bashcurl -I -A "Mozilla/5.0 (compatible)" https://example.comIf that returns 200 but a plain
curlrequest returns 403, the WAF is flagging curl's default User-Agent. The most reliable fix is to allow DomainDash's checks through by matching on the checker's User-Agent in your WAF, since checks come from rotating cloud IPs rather than a fixed range. Your WAF access logs will show which rule is blocking the request.For 429, check rate-limiting rules. A 429 means the checker is being throttled. Check your Cloudflare Rate Limiting rules, your application's rate-limiter middleware, or your web server's throttle config. Either raise the rate-limit threshold so the checker's requests aren't throttled, or exempt DomainDash's checks by matching the checker's User-Agent.
For 404, verify the application route. Check your application's routing config and confirm the path exists:
bashcurl -I https://example.com/your-pathIf a recent deploy renamed or removed the route, update the target URL in DomainDash to match the current correct path.
Verify the fix. Run
curl -I https://example.comand confirm the response is now 2xx.
How to verify
Confirm the page is welcoming requests again, not turning them away:
- Run
curl -I https://example.com. The response should start withHTTP/2 200(or another 2xx code). - Open the site in a fresh browser window. It should load normally.
- Open the site in DomainDash. It re-checks on its normal schedule, so once your fix is live the status returns to Healthy on its own within a check cycle, with nothing to click.
Related
- HTTP 5xx response — if the server is returning a server-error code instead
- Site is down — if you're not sure which uptime issue you have
- Uptime — how DomainDash runs uptime checks
- Site settings — where to update the path being checked and the expected response code
Catch this automatically
DomainDash keeps an eye on this for you — and tells you in plain English the moment something needs your attention, before your visitors notice. Set up in under a minute, no credit card.
Last updated: 19 June 2026