Skip to main content

🔧 Error 426 – Requiere actualización (Upgrade Required)

El error 426 indica que el servidor no puede procesar la solicitud porque el cliente debe actualizar el protocolo que está usando (por ejemplo, de HTTP/1.1 a HTTP/2, de WebSocket antiguo a uno moderno, etc.).

El servidor básicamente dice:
“No puedo aceptar esta solicitud con tu protocolo actual. Debes actualizar a otro más moderno o seguro.”

Este código se usa en APIs, WebSockets, servidores HTTP y sistemas que requieren versiones específicas de protocolo.


Causas más comunes

  • 🌐 El servidor exige usar HTTP/2 o HTTP/3, pero el cliente usa HTTP/1.1.

  • 🔧 Actualizaciones de WebSocket requeridas (header Upgrade: websocket).

  • 🔐 El servidor requiere una versión más segura de protocolo TLS.

  • 📡 Cliente o librería HTTP desactualizada que no soporta el protocolo actual.

  • 🧩 API que requiere un Upgrade específico no enviado por el cliente.

  • 🚫 Intentar usar un protocolo antiguo deshabilitado por seguridad (como TLS 1.0 o 1.1).


🔧 Soluciones recomendadas

1️⃣ Actualizar el protocolo HTTP usado por el cliente

Si el servidor responde con:


Upgrade: h2

Significa que quiere HTTP/2.

Ejemplo en cURL:


curl --http2 https://tusitio.com

2️⃣ Agregar el encabezado Upgrade adecuado

Ejemplo para WebSockets:


Upgrade: websocket Connection: Upgrade

Clientes sin estos encabezados → 426.


3️⃣ Actualizar el cliente, navegador o librería que estás usando

Algunas librerías viejas:

  • No soportan HTTP/2

  • No soportan TLS modernos

  • No aceptan protocolos actualizados

Solución: actualizar a versiones recientes.


4️⃣ Activar soporte del protocolo en el servidor

Nginx – habilitar HTTP/2:


listen 443 ssl http2;

Apache:


Protocols h2 h2c http/1.1

Node.js – HTTP/2:


const http2 = require('http2');

5️⃣ Actualizar versión de TLS

Muchos servidores rechazan conexiones con TLS 1.0/1.1 por inseguras.

Solución: habilitar TLS 1.2 o 1.3 en el cliente.


6️⃣ Corregir integraciones con APIs

Algunas APIs modernas solo aceptan HTTP/2 o protocolos específicos.

Ejemplo:

  • API de Google Cloud

  • API de Cloudflare

  • Servicios de streaming

Si llamas usando HTTP/1.1 → 426.


7️⃣ Revisar proxies o balanceadores

Un proxy desactualizado puede impedir que se use el protocolo requerido.

Solución:
Actualizar Nginx, HAProxy, Traefik, etc.


🔐 Consejo Pro

El servidor normalmente indica qué protocolo quiere en la cabecera:


Upgrade: h2

ó


Upgrade: websocket

Tu cliente debe reenviar la solicitud usando ese protocolo.

Este error es una señal clara para modernizar o corregir la comunicación.