Skip to content

HTTP status code · Server errors (5xx)

510 Not Extended

510 Not Extended meant the request did not satisfy the server's policy for accessing the resource, because it lacked a mandatory extension declared with the RFC 2774 HTTP Extension Framework. That framework was never adopted, RFC 2774 is now Historic, and IANA marks 510 as obsoleted.

Facts about this status code
Class5xx, Server errors
Defined inRFC 2774 §7
Cacheable by defaultOnly with explicit Cache-Control or Expires
Safe to retryOnly if the response says which extension to add and the client can add it
Relevant headers
  • Man: the RFC 2774 request header that declared a mandatory extension
StatusDeprecated: Obsolete: RFC 2774 was moved to Historic, and IANA lists 510 as "Not Extended (OBSOLETED)".

What 510 means

RFC 2774 (February 2000) proposed a way to declare mandatory HTTP extensions with the Man and Opt headers and the M- method prefix. Section 7 defines 510 for a request that does not meet the policy for accessing the resource; the response should carry everything the client needs to send an extended request.

The experiment ended without real deployments. The IETF moved RFC 2774 to Historic along with several other old HTTP experiments, and the IANA registry now lists the code as "Not Extended (OBSOLETED)". If you meet it today, it is almost certainly an application misusing the number for its own purposes.

Common causes

If you run the server

  • An application or framework that repurposes 510 for its own "missing extension" or "missing feature flag" check.
  • Legacy software built around the RFC 2774 extension framework.

How to fix it

If you run the server

  • Replace it with a registered code that says what is really wrong: 400 or 422 for a missing required header or parameter, 426 to require a protocol upgrade, 403 for a policy refusal.

How to send 510

Do not send 510 in new code. Clients and libraries will only understand it as a generic 500.

Commonly confused with

510 vs 426
426 Upgrade Required is the live, standard way to say "switch to another protocol first"; 510 was about optional HTTP extensions and is obsolete.
510 vs 428
428 Precondition Required tells the client to send a conditional header such as If-Match; it covers one of the few "you must add something to the request" cases that still matter.

Frequently asked questions

Is 510 Not Extended still valid?
It is still in the IANA registry, but marked as obsoleted, because the RFC 2774 HTTP Extension Framework it belongs to was moved to Historic. New software should not use it.
What should I use instead of 510?
Pick the code for the real problem: 400 or 422 for a missing required header or parameter, 426 Upgrade Required to demand a different protocol, 403 Forbidden for a policy refusal.
What was the HTTP Extension Framework?
An experimental design from RFC 2774 that let clients declare mandatory or optional extensions with the Man and Opt headers, so servers could refuse requests missing a required one. It never gained real implementations.

Last reviewed by Arielton Oberek.