510 Not Extended
Usage
The 510 Not Extended status code is part of the HTTP Extension Framework. IANA now lists 510 as “Not Extended (OBSOLETED)” and the specification has been moved to Historic status, meaning the protocol is no longer recommended for use.
The error occurs when the client is required to use an extended HTTP request but has not done so. The server response includes information on how to extend the request, though the exact format is not specified in the protocol.
Example
The client sends a request requiring a mandatory HTTP extension. The server responds with 510 Not Extended because the request does not include the required M- prefix and extension declaration.
Request
GET /resource HTTP/1.1
Host: example.com
Response
HTTP/1.1 510 Not Extended
Content-Type: text/html; charset=UTF-8
Content-Length: 199
<html>
<head>
<title>Not Extended</title>
</head>
<body>
<p>The request requires a mandatory HTTP
extension. Resubmit with the required
extension headers.</p>
</body>
</html>
How to fix
The server requires an HTTP extension the client did not include in the request. The 510 response body describes which extension is needed.
On the client side:
On the server side:
This status code is rarely encountered in practice. The HTTP Extension Framework has been moved to Historic status and has seen near-zero adoption. Most modern APIs and web applications handle feature negotiation through custom headers, query parameters, or API versioning rather than the Extension Framework mechanism.
510 in service workers
Service workers intercepting fetch requests sometimes surface a 510 when the worker lacks the extension or capability the origin requires. The fix is the same: check the response body for the missing extension and update the service worker fetch handler to include the required headers.
Code references
.NET
HttpStatusCode.NotExtended
Rust
http::StatusCode::NOT_EXTENDED
Rails
:not_extended
Go
http.StatusNotExtended
Symfony
Response::HTTP_NOT_EXTENDED
Python3.5+
http.HTTPStatus.NOT_EXTENDED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_NOT_EXTENDED
Angular
@angular/common/http/HttpStatusCode.NotExtended