510 Not Extended
The 510 Not Extended status code indicates the request requires a mandatory HTTP extension the client did not include.
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.
SEO impact
Search engines treat 510 the same as other 5xx server errors. Persistent failures reduce crawl rate and eventually remove affected URLs from the index.
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: www.example.re
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:
- Read the 510 response body for details on the
required extension. The specification defines
mandatory extensions using the
Manheader and optional extensions use theOptheader, each referencing an extension namespace URI. - Resubmit the request with the required extension
declaration. The request method must use the
M-prefix (e.g.M-GET) when a mandatory extension is present, and theManheader must reference the extension URI with a namespace prefix bound via theC-Extheader. - If the client has no support for the extension, contact the server operator to determine whether an alternative endpoint or protocol is available without the extension requirement.
On the server side:
- Verify the mandatory extension requirement is intentional. A misconfigured server sending 510 for standard requests blocks all clients lacking the extension.
- Provide a clear response body explaining the required extension and how to include the declaration, so clients receive actionable error messages.
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
See also
- RFC 2774: An HTTP Extension Framework
- Google: HTTP status codes and network errors
- 500 Internal Server Error
- 501 Not Implemented
- HTTP status codes