Documentación de Rivya AI

Errores y límites de la API

Maneja códigos públicos de error de Rivya API, estados HTTP, límites de tasa, conflictos de idempotencia y decisiones de reintento.

Última revisión el 2026/05/11

Rivya API devuelve códigos públicos de error estables en JSON. Trata el valor error.code como el contrato de integración.

Forma del error

{
  "error": {
    "code": "api_key_missing",
    "message": "A valid Bearer API key is required.",
    "requestId": "req_..."
  }
}

Conserva requestId en tus logs cuando pidas a soporte de Rivya que investigue una solicitud de API fallida.

Códigos de error estables

CódigoEstado HTTPSignificadoAcción sugerida
public_api_disabled503Las llamadas a la Public API están temporalmente desactivadas.Reintenta más tarde o usa Studio manualmente.
api_key_missing401La solicitud no incluyó una clave API Bearer.Envía Authorization: Bearer rvya_sk_....
api_key_invalid401La clave no puede verificarse.Revisa la clave y rótala si hace falta.
api_key_revoked401La clave fue revocada en Settings.Crea una clave nueva.
api_key_expired401La clave ya no es válida.Crea una clave nueva.
api_scope_denied403La clave no tiene el scope requerido.Crea una clave con el scope necesario.
rate_limited429Demasiadas solicitudes en la ventana actual.Retrocede y reintenta más tarde.
validation_failed400El body, el modelo, el prompt o los params no son válidos.Compara tu body con la referencia del modelo.
not_found404La tarea solicitada no existe o no pertenece a la cuenta.Revisa el ID público de tarea y el límite de cuenta.
webhook_url_rejected400La URL del endpoint de webhook no está permitida.Usa una URL HTTPS pública sin credenciales, fragmentos, localhost ni direcciones de red privada.
chat_model_not_supported400El modelo seleccionado no está disponible para Chat API.Lee /api/v1/models y elige un modelo de chat disponible.
chat_session_conflict409La sesión de chat no puede usarse para esta solicitud.Usa una sesión creada por API que pertenezca a la misma cuenta y modelo.
chat_attachment_not_supported400El adjunto de chat no es compatible.Sube una imagen mediante Files API y pasa su file_id.
idempotency_conflict409La misma clave de idempotencia se reutilizó con una entrada diferente.Usa una clave nueva o reenvía exactamente el mismo body.
insufficient_credits402La cuenta no tiene créditos suficientes.Añade créditos o elige una solicitud de menor costo.
internal_error500La solicitud no pudo completarse.Reintenta con idempotencia o contacta con soporte usando requestId.

Límites de tasa

Rivya aplica límites de tasa de Public API a nivel de aplicación por clave API. El límite de producción por defecto se configura con PUBLIC_API_RATE_LIMIT_PER_MINUTE.

Cuando recibas rate_limited, usa backoff exponencial. No reintentes en un bucle cerrado.

Reintentos idempotentes

Envía Idempotency-Key con cada solicitud de producción POST /api/v1/generations y POST /api/v1/chat/completions.

Patrón recomendado:

  • genera una clave única por solicitud lógica de generación
  • reutiliza la misma clave solo al reintentar el mismo body
  • guarda el ID público de tarea devuelto junto con tu propio registro de trabajo
  • para Chat API, guarda el session_id devuelto cuando quieras continuar la misma conversación
  • no reutilices una clave para un modelo, prompt o params diferentes

Si la red falla después del envío, reintenta con el mismo body y el mismo Idempotency-Key. Rivya puede devolver la respuesta pública guardada en lugar de crear una tarea duplicada.

Decisiones de reintento

Reintenta estos con backoff:

  • public_api_disabled
  • rate_limited
  • internal_error
  • fallos temporales de red

No reintentes estos sin cambiar la entrada:

  • api_key_invalid
  • api_key_revoked
  • api_scope_denied
  • validation_failed
  • webhook_url_rejected
  • chat_model_not_supported
  • chat_session_conflict
  • chat_attachment_not_supported
  • idempotency_conflict
  • insufficient_credits

Páginas relacionadas

Tabla de contenido