501 Not Implemented

The server does not support the functionality required to fulfil the request.

What 501 means

501 means the server does not recognise the request method, or does not support it for any resource. It is a statement about the server's capabilities rather than about this particular URL, which is what distinguishes it from 405.

It is genuinely rare in application code. Where you do see it, it is usually a proxy or gateway that does not support a method being tunnelled through it, or an endpoint stubbed out for a feature not yet built.

It is the one 5xx that clients should not retry, because the capability is absent rather than temporarily unavailable. Retry logic that treats all 5xx as transient will loop pointlessly on a 501.

Should a client retry?

The server cannot do this at all, so retrying cannot help. This is the 5xx to exclude from automatic retry.

FAQ

What is the difference between 501 and 405?
405 means this resource does not support the method, though others might - and it must list the ones that do in an Allow header. 501 means the server does not support the method anywhere.
Should clients retry a 501?
No. Unlike other 5xx codes it is not transient - the functionality does not exist. Exclude it from retry logic that otherwise treats 5xx as retryable.

Often confused with