501 Not Implemented

The server doesn’t support this functionality.

When to use it

An HTTP method the server doesn’t recognise at all.

Common causes and fixes

501 means the server doesn’t recognise or support the request method at all, for any URL: a WebDAV method such as PROPFIND sent to a server without WebDAV, or PATCH sent to an old server. Contrast it with 405, where the method exists but isn’t allowed on that URL. Some APIs also return 501 for endpoints that are documented but not built yet.

Proxies and CDNs can generate it: some reject unusual methods, and a server must answer 501 to a Transfer-Encoding it doesn’t support. If it appears unexpectedly, send the same method straight to the origin with curl -X to see which layer refuses it. A 501 is cacheable by default, so add Cache-Control: no-store if the endpoint will start working soon.

Server error (5xx)

5xx codes are server errors: the request may be fine, but the server or something behind it failed. These are worth alerting on.

What it looks like

HTTP/1.1 501 Not Implemented

How to send it

Node.js / Expressres.status(501).end()
Python / Flaskreturn '', 501
nginxreturn 501;

How to check it

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

Open HTTP Status Codes