501 Not Implemented
5xx server error
The server doesn't support the functionality required — usually an HTTP method it doesn't recognise.
501 means the server doesn't recognise the request method, or lacks the capability to fulfil it, for any resource — not just this one. It's the right answer to PROPFIND or an invented verb on a server that doesn't implement it. Unlike most 5xx errors, retrying won't help.
| Class | 5xx Server Error |
|---|---|
| Retry? | No — change the request first |
| Cacheable by default | Yes (heuristically, per RFC 9110) |
| Response body | Allowed |
| Defined in | RFC 9110 §15.6.2 — 501 Not Implemented |
Example response
HTTP/1.1 501 Not Implemented
Content-Type: application/json
Content-Length: 27
{"error":"Not Implemented"}Common causes
- Unknown or unsupported HTTP methods, such as WebDAV methods sent to a plain web server.
- Placeholder API endpoints for features that aren't built yet.
How to fix it
- Use a method the server supports — check its documentation or an OPTIONS response.
- If the method is valid on some resources but not this one, the correct status is 405.
Send a 501 from your server
Express
res.status(501).json({ error: "Not Implemented" });Next.js route handler
return Response.json({ error: "Not Implemented" }, { status: 501 });Flask
return {"error": "Not Implemented"}, 501Go net/http
http.Error(w, "Not Implemented", http.StatusNotImplemented)
nginx
return 501;
Check what a URL returns
Print just the status line from the command line, or check a whole list of URLs at once, with their response headers, in the HTTP Status Checker.
curl -sI https://example.com/your-path | head -n 1
Frequently asked questions
501 vs 405?
405: this resource doesn't allow the method, though others might. 501: the server doesn't implement the method at all.
Related status codes