error.message, corrige los errores de autenticación o configuración antes de reenviar y reintenta solo los fallos identificados como temporales.
Antes de diagnosticar el problema
Ten a mano el Model ID, la Base URL y la respuesta fallida. Comprueba el estado de la Key y el saldo actual en el Dashboard de BetterToken. Si aún no has completado una solicitud a un modelo, empieza por los ejemplos de SDK o la guía de configuración de tu herramienta.Interpreta la respuesta de error
BetterToken devuelve los errores de la API en una estructura JSON. Por ejemplo, una solicitud sin Key puede devolver:error.message aunque error.code esté vacío. El ID de solicitud de ese mensaje ayuda a identificar el intento fallido. Una solicitud a /v1/models sin Key devuelve 401; no comprueba si tu modelo puede generar una respuesta.
Anota estos datos antes de contactar con soporte:
No incluyas tu BetterToken API Key en capturas, mensajes de soporte ni registros compartidos.
Comprueba el estado HTTP
La tabla recoge los significados generales de HTTP y las API, junto con las guías de configuración enlazadas. No es una lista de códigos específicos de BetterToken; lee la respuesta real antes de elegir una solución.
Para errores de protocolo o sufijo, consulta las preguntas sobre Base URL. Para dudas sobre caché, consulta las preguntas sobre facturación de la caché.
Reintenta los fallos temporales
Tras identificar un429 temporal o un fallo temporal del servidor, usa una espera exponencial con variación aleatoria y límites. Respeta Retry-After si se devuelve; si supera tu límite de reintentos, detén el bucle y espera fuera de él. Los reintentos del SDK y los de tu bucle comparten un mismo máximo de intentos; desactiva los del SDK si implementas tu propia política.
No reintentes sin cambios los errores 400, 401, 403, de saldo o de configuración. Un tiempo de espera agotado o un flujo interrumpido no demuestra que la solicitud fallara antes de procesarse. Comprueba primero el Dashboard, sobre todo al generar imágenes o en flujos que puedan repetir una acción.
Los siguientes ejemplos envían una solicitud a Chat Completions sin streaming, con un máximo de cuatro intentos. Reintentan los estados HTTP 500, 502 y 503. Los reintentos de 429 permanecen desactivados hasta confirmar que se trata de un límite temporal, y se detienen ante tiempos de espera agotados, excepciones de red y 504 para que compruebes si la solicitud terminó. La espera máxima por reintento es de 30 segundos.
Prepara la solicitud
Copia un Model ID actual del model plaza y sustituye los dos valores de ejemplo. Usa un modelo de texto disponible mediante Chat Completions..mjs y ejecútalo con una versión de Node.js que incluya fetch y AbortSignal.timeout.
- Python
- JavaScript

