# HTTP 501 Not Implemented — Meaning, Causes & Fixes

> 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
- Defined in: [RFC 9110 §15.6.2 — 501 Not Implemented](https://www.rfc-editor.org/rfc/rfc9110.html#section-15.6.2)

## Example response

```http
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

1. Use a method the server supports — check its documentation or an OPTIONS response.
2. 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"}, 501
```

### Go net/http

```
http.Error(w, "Not Implemented", http.StatusNotImplemented)
```

### nginx

```
return 501;
```

## FAQ

### 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

- [405 Method Not Allowed](https://www.devkult.com/http/405.md)
- [500 Internal Server Error](https://www.devkult.com/http/500.md)
- [505 HTTP Version Not Supported](https://www.devkult.com/http/505.md)

Open the interactive page: https://www.devkult.com/http/501