406

Not Acceptable

Cuando el servidor se pone exquisito y no le vale nada de lo que le ofreces.

⚠️ Error del Cliente

🤔 ¿Qué narices es esto?

El error 406 Not Acceptable es como ir a un restaurante y que el camarero te diga que no tienen nada que te guste. El servidor tiene cosas, pero ninguna encaja con lo que tú pides.

Este error aparece cuando el servidor no puede devolver una respuesta que cumpla con los formatos (Accept) que tu navegador o cliente le ha pedido. Vamos, que no hay match.

  • Tu navegador pide un formato rarísimo
  • El servidor solo habla en JSON y tú quieres XML
  • El header Accept está mal puesto
  • La API es más estricta que tu profe de mates

Dato curioso

El 406 es de esos errores que casi nadie ve, pero cuando sale, suele pillar a los desarrolladores con el pie cambiado. Y sí, a veces es culpa de un simple header mal escrito.

No es el error más común, pero cuando aparece suele ser por peticiones demasiado “especialitas” o APIs muy estrictas con los formatos.

🔧 Cómo arreglar este desastre

🚀 Para usuarios normales

  1. Actualiza la página: Puede ser un fallo puntual.
  2. Prueba con otro navegador: A veces el problema es del cliente.
  3. Contacta al sitio: Si nada funciona, pregunta al soporte.

🛠️ Para desarrolladores

  1. Revisa el header Accept: Asegúrate de que pides formatos que el servidor puede devolver.
  2. Configura bien el backend: Añade soporte para los formatos más comunes (application/json, text/html, etc.).
  3. Comprueba la negociación de contenido: Que el servidor responda correctamente según lo que pide el cliente.
  4. Lee la documentación: Igual la API solo acepta ciertos formatos.
  5. Devuelve un formato por defecto: Si no hay match, responde con algo razonable.

Problemas típicos con 406

  • Header Accept demasiado restrictivo:
    El cliente solo acepta formatos raros y el servidor no puede dárselos.
  • Backend sin soporte para el formato pedido:
    El servidor solo sabe responder en JSON y tú pides XML.
  • Negociación de contenido mal implementada:
    El backend no gestiona bien los headers Accept.
  • APIs demasiado estrictas:
    Algunas APIs solo aceptan un formato y rechazan el resto sin contemplaciones.
  • Errores de configuración en proxies o gateways:
    A veces el problema está en la capa intermedia, no en tu código.

🚀 Respuesta rápida para emergencias

🔥 Si toda tu API da 406:
1. Revisa los formatos soportados por el backend.
2. Comprueba los headers Accept de las peticiones.
3. Añade soporte para más formatos si puedes.
⚡ Si solo una petición da 406:
1. Verifica el header Accept en esa petición.
2. Prueba a pedir */* para aceptar cualquier cosa.
3. Consulta la documentación de la API.
🎯 Truco pro:
Siempre que puedas, haz que tu backend devuelva un formato por defecto si no hay match.