501 Not Implemented

HTTP response status code 501 Not Implemented is a server error indicating the server does not support the functionality required to fulfill the request.

The HTTP response is cacheable by default. Overriding this behavior requires appropriate HTTP caching headers in the response.

Usage

The 501 Not Implemented status code means the server is unable to fulfill the request due to a server-side deficiency. This is similar to the 405 Method Not Allowed status code, although a 405 specifically means the requested method is recognized but not allowed for the target resource.

A 405 Method Not Allowed status code means the server recognizes the method but does not allow the method for the target resource. A 501 Not Implemented status code means the server does not recognize the method or lacks the ability to support the method for any resource. This is a permanent server-level condition.

This status is appropriate when the server does not recognize the request method and is therefore unable to support the request for any resource.

SEO impact

Search engines like Google do not index a URL returning a 501 Not Implemented status. Previously indexed URLs returning this status code are removed from search results.

Some APIs extend the meaning of 501 beyond missing methods. The Shopify API returns 501 Not Implemented when the requested endpoint is unavailable on the shop's current plan, such as a feature restricted to Shopify Plus. The endpoint exists in the API surface but is gated by subscription tier.

Example

The client requests a resource and the server responds with a 501 Not Implemented status code because the request method is recognized but not yet supported.

Request

POST /requests?id=111&flag=start HTTP/1.1
Host: www.example.re

Response

HTTP/1.1 501 Not Implemented
Content-Type: text/html; charset=UTF-8
Content-Length: 148

<html>
  <head>
    <title>Function Not Implemented</title>
  </head>
  <body>
    <p>This functionality is under development.</p>
  </body>
</html>

How to fix

Confirm the HTTP method in the request is correct. A PATCH sent to a server expecting only GET and POST triggers a 501 if the server has no handler for the method at all.

Common root causes and their fixes:

  • Unsupported method on the server. In Apache, the Limit and LimitExcept directives control allowed methods. In nginx, method filtering happens in the location block. Ensure the method the client sends is not excluded by configuration.

  • Missing server modules. Apache requires mod_dav for WebDAV methods like PROPFIND and MKCOL. IIS requires WebDAV Publishing and the correct handler mappings. Enable the module and restart the service.

  • Reverse proxy stripping or rewriting methods. Some proxies convert non-standard methods to GET. In nginx, verify proxy_method is not set unless intentional. In AWS ALB, confirm the target group supports the required HTTP methods.

  • Outdated server software. Older web server builds lack support for methods standardized after their release. Update Apache, nginx, or IIS to a current stable version.

  • Firewall or WAF blocking. Web application firewalls and security plugins sometimes reject methods like PUT, DELETE, or OPTIONS. Review WAF rules and allowlist the required methods for the endpoint.

  • API feature restricted by plan tier. Platforms like Shopify return 501 when an endpoint exists but is unavailable for the shop's subscription level. Verify the feature's plan requirements in the API documentation and upgrade if needed.

On the client side, confirm the request URL is correct. A typo routing traffic to the wrong server or endpoint returns 501 when the receiving server has no implementation for the method.

Code references

.NET

HttpStatusCode.NotImplemented

Rust

http::StatusCode::NOT_IMPLEMENTED

Rails

:not_implemented

Go

http.StatusNotImplemented

Symfony

Response::HTTP_NOT_IMPLEMENTED

Python3.5+

http.HTTPStatus.NOT_IMPLEMENTED

Java

java.net.HttpURLConnection.HTTP_NOT_IMPLEMENTED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_NOT_IMPLEMENTED

Angular

@angular/common/http/HttpStatusCode.NotImplemented

Takeaway

The 501 Not Implemented status code is a server error indicating the server does not support the functionality required to complete the request at this time.

See also

Last updated: March 6, 2026