HTTP 501 Not Implemented
El servidor simplemente no puede hacerlo: la funcionalidad solicitada — normalmente el método HTTP — no está soportada en absoluto.
Qué significa HTTP 501
HTTP 501 Not Implemented significa que el servidor no reconoce ni soporta la funcionalidad necesaria para cumplir la solicitud. La especificación lo reserva principalmente para métodos HTTP no reconocidos — el servidor no puede manejar el verbo para ningún recurso, a diferencia de 405, donde el verbo es conocido pero no está permitido para esa URL.
En la práctica, 501 también aparece en proxies y servidores antiguos que reciben solicitudes para las que nunca fueron construidos (verbos WebDAV, PATCH en stacks antiguos), o como marcador de posición en backends a medio configurar.
Causas comunes de los errores 501
- Un método HTTP que el servidor no implementa en absoluto (por ejemplo, PATCH o verbos WebDAV en un servidor antiguo).
- Un proxy o gateway que recibe un método de solicitud que no puede reenviar.
- Un endpoint provisional desplegado antes de terminar su implementación.
- Nombres de método malformados por clientes con errores (typos como GETT).
Cómo solucionarlo como desarrollador
- Comprueba el método exacto que se envía — los typos y los verbos personalizados con mayúsculas incorrectas son sorprendentemente comunes.
- Si el método es legítimo (por ejemplo, PATCH), actualiza o configura el servidor/framework para soportarlo, o túnelízalo vía POST con una cabecera de override donde el stack lo permita.
- Distíngelo de 405: si solo una ruta rechaza el verbo, arregla la ruta (terreno de 405); si lo hace todo el servidor, es una carencia de capacidad de la plataforma.
- No devuelvas 501 para funcionalidades sin terminar en APIs de producción — prefiere 404 o un feature flag, ya que 501 es cacheable por defecto.
Ejemplo de respuesta
HTTP/1.1 501 Not Implemented
Content-Type: application/json
{"error":"not_implemented","message":"PATCH is not supported by this server"}Preguntas frecuentes
¿Cuál es la diferencia entre 501 y 405?
405 significa que la URL existe pero rechaza este método (consulta la cabecera Allow). 501 significa que el servidor no soporta el método para ningún recurso en absoluto.
¿Es temporal un error 501?
Normalmente no — indica una capacidad ausente, no una caída del servicio. Solo desaparece cuando el servidor añade soporte para la funcionalidad solicitada.
¿Por qué mi solicitud PATCH devuelve 501?
El servidor o un proxy intermedio es anterior al soporte de PATCH. Actualiza el stack, habilita el método o usa un override de método basado en POST.