Error guide
501 Not Implemented
The server does not support the functionality needed to fulfil the request at all.
A 501 Not Implemented means the server does not support the functionality required to fulfil the request — most commonly a request method it does not recognise or has not implemented. It is a statement about the server's capabilities in general, not about the specific resource.
That is the distinction from 405. A 405 says this resource does not accept that method, while the server understands it perfectly. A 501 says the server does not implement the method at all, for anything.
It is rare in application code and turns up mostly from infrastructure: a proxy asked to handle a method it does not support, an origin behind a CDN that cannot process a transfer encoding, or an old server meeting a newer protocol feature. It is worth checking which hop generated it before looking at your own code.
Common causes
- A request method the server does not implement, such as PATCH on an older server or PROPFIND outside WebDAV.
- A proxy or gateway asked to forward a method it does not support.
- A transfer or content encoding the server cannot process.
- A framework feature that is unavailable in the deployed runtime or build.
- A CDN or edge layer rejecting a protocol feature before the origin sees it.
How to diagnose it
- Identify the generating hop: request the origin directly, bypassing the proxy or CDN, and see whether it still returns 501.
- Check the method and any unusual headers — encodings and Expect headers are common triggers.
- Compare against a request that works, changing one element at a time.
- Check whether it is limited to one method for every path, which confirms it is capability rather than routing.
Whose fault is it? The server's side
The server lacks the capability, so it is a server-side answer — though sending an exotic method or encoding is a client-side choice, and often the easier half to change.
What monitoring sees
A monitor receiving a 501 is usually using a method the infrastructure does not support, rather than detecting an outage. Uptimely records the code so it is distinguishable from a 500 or 502 in the check history, which matters because the three point at completely different layers.
Related error guides
Terms used on this page
Questions
What is the difference between 501 and 405?
405 means this particular resource does not accept the method, though the server understands it. 501 means the server does not implement the method at all, anywhere.
Why would a proxy return 501?
Because it was asked to forward something it cannot handle — an unusual method, or a transfer or content encoding it does not support. Requesting the origin directly tells you whether the proxy or the origin generated it.
One of the Uptimely HTTP and network error guides, written for the person who operates the server rather than the one refreshing the page. Something here read wrong to you? Email support@getuptimely.com.