docs
Ayuda

Errores y límites

Markdown

Códigos de respuesta, su significado y qué hacer. Todos los errores están en JSON e incluyen el Request ID.

Guía completa

Formato del error

El error llega en el formato de la API que has llamado: el objeto error para OpenAI, {"type": "error", "error": {...}} para Anthropic y error con los campos status y details para Gemini. Por eso, los SDK los reconocen como errores normales de API.

  • error.code y error.reason indican la misma clase de error de la tabla siguiente. error.type es el valor estándar del formato (por ejemplo, invalid_request_error o server_error).
  • error.request_id (en Anthropic, request_id en el nivel superior), la cabecera X-Request-ID y el final del mensaje contienen el identificador de solicitud.
  • En Gemini, la clase se encuentra en error.details: ErrorInfo.reason : el mismo código en mayúsculas (por ejemplo, MODEL_OVERLOADED), domain — ailoot.ai; el identificador de solicitud está en RequestInfo.requestId.
  • En Gemini, los errores 5xx que no se deben reintentar automáticamente y result_pending_check se devuelven con el código de estado 409 y status ABORTED, para que los SDK y CLI de Gemini no los reintenten automáticamente. La clase de error está en ErrorInfo.reason (por ejemplo, MODEL_TIMEOUT o RESULT_PENDING_CHECK).
  • La respuesta en formato OpenAI también incluye los campos de nivel superior code y message para los clientes antiguos.
{
  "code": "API_KEY_REQUIRED",
  "error": {
    "code": "invalid_api_key",
    "message": "No API key was sent with the request. Nothing was charged. Please check that the full key is sent in the Authorization header as \"Bearer <key>\". Request ID: 3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6.",
    "param": null,
    "reason": "invalid_api_key",
    "request_id": "3b28d3de-5b02-4d07-9f3c-4b9a7d0e68d6",
    "type": "invalid_request_error"
  },
  "message": "No API key was sent with the request. Nothing was charged. …"
}

Códigos de error

HTTPClase (reason)Qué ha ocurridoQué hacer
400invalid_requestSolicitud no válida: cuerpo o parámetro incorrecto; el modelo no admite un campo, adjunto o herramienta de la solicitud; la clave se ha enviado en la URL Corrige la solicitud según el mensaje de error: elimina el campo, adjunto o herramienta no admitidos y envía la clave en una cabecera. El rechazo por un campo, adjunto o herramienta no admitidos se produce antes de la reserva; no se cobra nada
400context_length_exceededLa solicitud supera el contexto del modeloAcorta el historial o elige un modelo con más contexto
400content_policy_violationLas reglas del modelo rechazan la solicitudReformula la solicitud
401invalid_api_keyLa clave falta o no es válidaComprueba que hayas enviado la clave completa
401api_key_disabledLa clave está desactivadaActívala o crea una clave nueva
402insufficient_balance, insufficient_quotaNo hay suficiente saldo disponible ni para la reserva mínima (insufficient_quota representa el mismo caso en el formato habitual de OpenAI SDK)Recarga el saldo o reduce max_tokens
402api_key_quota_exhaustedSe ha agotado el límite total de gasto de la claveAumenta el límite de la clave en el panel de control
402payment_disputedLa cuenta tiene una deuda por un pago impugnadoLas nuevas solicitudes quedan suspendidas hasta pagar la deuda; contacta con soporte
403api_key_expiredLa clave ha caducadoCrea una clave nueva
403account_inactiveTu cuenta está desactivadaContacta con soporte
403permission_deniedLa clave no permite esta solicitud, por ejemplo, por la IPComprueba las restricciones de la clave
404model_not_foundEl modelo no existeComprueba el ID en /v1/models
404unsupported_endpointEl modelo no funciona en este formatoElige otro formato o modelo
404not_foundLa ruta o el objeto, como una tarea, no existeComprueba la URL y el identificador
409duplicate_requestYa se ha aceptado una operación con la misma clave de idempotencia y puede que haya terminadoComprueba el resultado de la primera operación; no envíes una nueva
409not_ready, video_not_readyEl vídeo u otra tarea aún no está listoConsulta el estado más tarde
409, 503result_pending_checkEstamos comprobando el resultado de la solicitud. En las tareas de vídeo, se indica con result_pending_check: true en la respuesta de estado; la tarea sigue en in_progressNo vuelvas a enviar la solicitud: el estado aparecerá en el historial (GET https://ailoot.ai/api/v1/usage). No crees de nuevo la tarea de vídeo; consúltala más tarde mediante GET /v1/videos/{id}
410model_retiredEl modelo se ha retirado del servicioElige una versión nueva en GET /v1/models
413request_too_largeEl cuerpo de la solicitud es demasiado grandeReduce los archivos o el historial
429rate_limit_exceeded, gateway_concurrency_limit, gateway_queue_fullDemasiadas solicitudes o solicitudes simultáneas desde tu cuentaEspera (cabecera Retry-After, normalmente 10 s) y vuelve a intentarlo
429usage_limit_reachedSe ha agotado el límite de gasto de la clave para este periodo (5 horas, 1 día o 7 días)Espera a que se renueve el periodo o aumenta el límite de la clave
500internal_errorError de AilootContacta con soporte e indica el Request ID
502invalid_model_response, empty_response, incomplete_responseEl modelo ha devuelto una respuesta no válida, vacía o incompletaBusca el Request ID en el historial del panel de control. Si ya hay un resultado o un cargo, reintentar creará una segunda solicitud facturable. La ausencia de un registro no confirma que la solicitud no se haya enviado o ejecutado: no repitas un envío cuyo resultado se desconoce; contacta con soporte e indica el Request ID.
502result_not_deliveredEl resultado no se ha entregado por un fallo de Ailoot; la reserva o el cargo se ha devueltoPuedes volver a enviar la solicitud
503model_overloadedEl modelo está temporalmente sobrecargadoSi X-Should-Retry: true, vuelve a intentarlo tras los segundos indicados en Retry-After; si es false, consulta primero el Request ID en el historial
503model_unavailableEl modelo no está disponible temporalmenteElige otro modelo. Si X-Should-Retry: true, vuelve a intentarlo tras los segundos indicados en Retry-After; si es false, consulta primero el Request ID en el historial
503service_unavailableFallo temporal de AilootSi X-Should-Retry: true, vuelve a intentarlo tras los segundos indicados en Retry-After; si es false, consulta primero el Request ID en el historial
503charge_not_confirmedNo se ha entregado la respuesta porque no se ha podido confirmar el cargo; la reserva se ha devuelto y no se ha cobrado nadaSi X-Should-Retry: true, vuelve a intentarlo tras los segundos indicados en Retry-After; si es false, consulta primero el Request ID en el historial
504model_timeoutEl modelo no ha respondido a tiempo; el resultado aún puede aparecerNo vuelvas a enviar la solicitud hasta consultar el Request ID en el historial

Los códigos de respuesta del modelo y comprobación del resultado (502, 503 y 504) ahora hacen referencia al modelo o a la solicitud: model_unavailable, model_timeout, invalid_model_response, incomplete_response, charge_not_confirmed y result_pending_check. Si tu código compara error.code con los valores antiguos, sustitúyelos por los de la tabla; para saber la equivalencia entre los códigos antiguos y los nuevos, consulta con soporte.

Cuándo reintentar una solicitud

  • Comprueba primero X-Should-Retry: si ves false, result_pending_check o model_timeout , no reintentes automáticamente. Busca el Request ID en el historial del panel de control para consultar el resultado y el cargo.
  • Es seguro reintentar cuando recibes X-Should-Retry: true: espera Retry-After segundos. En los errores 5xx, el código por sí solo no basta: el resultado podría haberse generado ya. Consulta primero el historial del panel de control o contacta con soporte e indica el Request ID. Es especialmente importante para imágenes, vídeos, música y pasos largos de agentes.
  • Reintentar no solucionará el problema: 400, 401, 402, 403 y 404; corrige primero la solicitud, la clave o el saldo.

Límites

La frecuencia y el número de solicitudes simultáneas se limitan para tu cuenta en su conjunto, no para cada clave. Si se supera el límite, recibirás 429 rate_limit_exceeded con la cabecera Retry-After: 10. Si el propio modelo está sobrecargado, recibirás 503 model_overloaded con Retry-After: 30. Si necesitas más capacidad, contacta con soporte.

Los límites de gasto se configuran en la clave: el límite total devuelve 402 api_key_quota_exhausted y los periodos de 5 horas, 1 día y 7 días devuelven 429 usage_limit_reached. Más información en Claves y URL de la API.

Modelos NVIDIA: cola

Puedes consultar la lista de modelos con saldo cero; para generar necesitas saldo para la reserva. Los modelos NVIDIA, como Nemotron, funcionan mediante una cola compartida: con una carga alta, la respuesta puede tardar más o se puede devolver un error de «modelo temporalmente sobrecargado» con la cabecera Retry-After. Reintenta tras el tiempo indicado. Los precios están en el catálogo y los cargos se calculan igual que en los demás modelos.

El modelo define los límites de tamaño: contexto, es decir, cuántos tokens puedes enviar, y longitud máxima de respuesta. Se indican en el catálogo.

Historial y gastos

Historial y gastos · GET https://ailoot.ai/api/v1/usage · JWT · Authorization: Bearer $TOKEN

JWT ≠ sk-… · Inicio de sesión y sesiones

¿Tienes alguna pregunta? Envíanos el Request ID y una descripción; te ayudaremos a resolverla.Contactar con soporte