Error 502: qué hacer cuando falla grok-4.20-0309-non-reasoning

Un 502 significa que la pasarela recibió una respuesta no válida del servicio de modelo de origen: la solicitud llegó a la pasarela, pero el salto al origen falló.

502 Bad Gateway significa que el gateway recibió una respuesta inválida del servicio upstream del modelo. La solicitud llegó al gateway; el fallo ocurrió en el salto del gateway al upstream, normalmente por un reinicio del nodo o una conexión cortada.

grok-4.20-0309-non-reasoning lo ofrece xAI. Todo en esta página — causas, soluciones y datos medidos — se recopila del comportamiento real de este modelo en la capa de gateway.

En esta pasarela, el desencadenante más común es: El servicio de modelo de origen no está disponible o devolvió una respuesta mal formada. La primera acción recomendada es: Reintenta una vez: los 502 suelen ser transitorios.

Causas habituales

  • El servicio de modelo de origen no está disponible o devolvió una respuesta mal formada
  • Un nodo de origen se está reiniciando
  • Se interrumpió la conexión entre la pasarela y el origen
  • El modelo se retiró temporalmente

Cómo solucionarlo

  • Reintenta una vez: los 502 suelen ser transitorios
  • Cambia a un modelo equivalente de otro proveedor
  • Si solo un modelo devuelve 502, su origen está fallando
  • Inténtalo más tarde o escríbenos

Reintento con retroceso exponencial

El siguiente código reintenta cuando grok-4.20-0309-non-reasoning devuelve 502: hasta 5 intentos, con espera creciente y jitter aleatorio para que las llamadas concurrentes no reintenten a la vez. Lee la URL base y la API key de variables de entorno, nunca las escribas fijas.

import os, time, random
import requests

BASE  = os.getenv("OPENAI_BASE_URL")   # e.g. https://<your-gateway>/v1
KEY   = os.getenv("OPENAI_API_KEY")
MODEL = 'grok-4.20-0309-non-reasoning'


def chat(messages, retries=5):
    """Retry with exponential backoff + jitter."""
    for i in range(retries):
        try:
            r = requests.post(
                BASE + "/chat/completions",
                headers={"Authorization": "Bearer " + KEY},
                json={"model": MODEL, "messages": messages, "stream": True},
                timeout=60,
            )
            if r.status_code == 429 or r.status_code >= 500:
                time.sleep(min(2 ** i + random.uniform(0, 1), 30))
                continue
            r.raise_for_status()
            return r.json()
        except requests.exceptions.Timeout:
            time.sleep(min(2 ** i + random.uniform(0, 1), 30))
    raise RuntimeError("gave up after " + str(retries) + " retries")


print(chat([{"role": "user", "content": "hello"}]))

Datos clave de este modelo

Endpoint de APIhttps://api.airai.cc/v1
Compatible con OpenAIOpenAI-compatible
ProveedorxAI
Contexto1M
CapacidadesTools, Files, Vision
Formatos de APIopenai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search
Fórmula de facturaciónp * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5

Preguntas frecuentes

¿Un contexto largo hace más probable 502?

Hay que cambiar los parámetros; reintentar por sí solo no ayudará. Las etiquetas de capacidades son Tools, Files, Vision y de ahí derivan los límites de parámetros. La ventana de contexto 1M fija la entrada máxima por petición; lo que la supere se rechaza directamente. Trunca o resume las entradas largas: reduce 502 de forma notable.

¿Qué códigos vale la pena reintentar y cuáles nunca ayudan?

Reintentar es el primer paso más eficaz. Con la tarificación p * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5, las peticiones fallidas no cuentan en el uso. Fija el límite de reintentos en 3–5 y añade jitter. Usa backoff exponencial para los errores reintentables y devuelve el error de inmediato para el resto.

¿Cambiar a un modelo comparable de otro proveedor resuelve 502?

Tenga también un modelo de reserva preparado. Un respaldo a nivel de arquitectura es más fiable que parchear cada error por separado. Este modelo de xAI tiene varios nodos upstream entre los que el gateway puede alternar. Ten listo un modelo de respaldo más ligero para que el flujo principal no se corte.

¿Se me cobrará cuando grok-4.20-0309-non-reasoning devuelva 502?

Solo se cobra la salida ya generada; la parte fallida no. Con facturación p * 1.25 + cr * 0.2 + c * 2.5) : tier("200k_plus", p * 2.5 + cr * 0.4 + c * 5, el coste de salidas largas viene sobre todo de los tokens de salida. Revisa primero el saldo y los límites de velocidad en la consola, luego el código.

Otros errores de este modelo

Otros modelos con el mismo error

Datos actualizados: 2026-10-11 19:15

Soporte técnicoSoporte en línea
Volver arriba