4xx Client Error
Cacheable by default
404 Not Found
The server has no representation for this URL and will not say whether it ever did.
What causes it
- The URL is wrong — a typo, a stale link, or a case-sensitivity mismatch on a Linux server.
- The route exists in your code but not in the deployed build.
- A rewrite rule is missing, so a single-page app route is being handed to the file server.
- The resource was deleted (410 would be more informative).
How to fix it
- Check the server access log: a 404 with the exact requested path tells you whether the request even reached your application.
- For SPAs, add a catch-all rewrite to `index.html`.
- Serve a useful 404 page with search and links — it is often the highest-traffic error page on a site.
- Do not return 404 with a 200 status ("soft 404"); search engines treat that as a duplicate-content problem.
At a glance
- Class
- 4xx Client Error
- Reference
- RFC 9110 §15.5.5
- Standardised
- Yes
- Retry the request?
- No — fix the request
Other 4xx client error codes
- 400 Bad Request
- 401 Unauthorized
- 402 Payment Required
- 403 Forbidden
- 405 Method Not Allowed
- 406 Not Acceptable
- 407 Proxy Authentication Required
- 408 Request Timeout
- 409 Conflict
- 410 Gone
- 411 Length Required
- 412 Precondition Failed
- 413 Content Too Large
- 414 URI Too Long
- 415 Unsupported Media Type
- 416 Range Not Satisfiable
- 417 Expectation Failed
- 418 I'm a teapot
- 421 Misdirected Request
- 422 Unprocessable Content
- 423 Locked
- 424 Failed Dependency
- 425 Too Early
- 426 Upgrade Required
- 428 Precondition Required
- 429 Too Many Requests
- 431 Request Header Fields Too Large
- 451 Unavailable For Legal Reasons
- 499 Client Closed Request