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ódigo | Estado HTTP | Significado | Acción sugerida |
|---|---|---|---|
public_api_disabled | 503 | Las llamadas a la Public API están temporalmente desactivadas. | Reintenta más tarde o usa Studio manualmente. |
api_key_missing | 401 | La solicitud no incluyó una clave API Bearer. | Envía Authorization: Bearer rvya_sk_.... |
api_key_invalid | 401 | La clave no puede verificarse. | Revisa la clave y rótala si hace falta. |
api_key_revoked | 401 | La clave fue revocada en Settings. | Crea una clave nueva. |
api_key_expired | 401 | La clave ya no es válida. | Crea una clave nueva. |
api_scope_denied | 403 | La clave no tiene el scope requerido. | Crea una clave con el scope necesario. |
rate_limited | 429 | Demasiadas solicitudes en la ventana actual. | Retrocede y reintenta más tarde. |
validation_failed | 400 | El body, el modelo, el prompt o los params no son válidos. | Compara tu body con la referencia del modelo. |
not_found | 404 | La 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_rejected | 400 | La 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_supported | 400 | El modelo seleccionado no está disponible para Chat API. | Lee /api/v1/models y elige un modelo de chat disponible. |
chat_session_conflict | 409 | La 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_supported | 400 | El adjunto de chat no es compatible. | Sube una imagen mediante Files API y pasa su file_id. |
idempotency_conflict | 409 | La misma clave de idempotencia se reutilizó con una entrada diferente. | Usa una clave nueva o reenvía exactamente el mismo body. |
insufficient_credits | 402 | La cuenta no tiene créditos suficientes. | Añade créditos o elige una solicitud de menor costo. |
internal_error | 500 | La 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_iddevuelto cuando quieras continuar la misma conversaciónno 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_disabledrate_limitedinternal_errorfallos temporales de red
No reintentes estos sin cambiar la entrada:
api_key_invalidapi_key_revokedapi_scope_deniedvalidation_failedwebhook_url_rejectedchat_model_not_supportedchat_session_conflictchat_attachment_not_supportedidempotency_conflictinsufficient_credits
Páginas relacionadas
Créditos de la API
Entiende cómo las llamadas a Rivya API usan créditos de cuenta, comprobaciones de saldo, créditos reservados, reembolsos por tareas fallidas y resolución de problemas de créditos.
Files API
Sube archivos de referencia de imagen, video o audio para solicitudes de generación de Rivya API, con comprobaciones MIME, límites de tamaño y tokens de duración.