Manejo de errores
Las clases específicas heredan de InceptivaApiError, que conserva las propiedades compatibles status y detail.
| Estado | Clase | Causa habitual |
|---|---|---|
401 | InceptivaAuthenticationError | API key ausente, inválida o rotada. |
403 | InceptivaForbiddenError | IP no permitida o acceso denegado. |
404 | InceptivaNotFoundError | Agente o conversación inexistente. |
409 | InceptivaConflictError | Clave idempotente reutilizada o petición todavía en curso. |
422 | InceptivaValidationError | Entrada inválida o límite de consumo. |
429 | InceptivaRateLimitError | Límite por minuto superado. |
ts
import {
InceptivaApiError,
InceptivaRateLimitError,
} from "@inceptiva/sdk";
try {
await client.responses.create({ message: "Hola" });
} catch (error) {
if (error instanceof InceptivaRateLimitError) {
console.error("Reintentar después de", error.retryAfter, "segundos");
} else if (error instanceof InceptivaApiError) {
console.error(error.status, error.detail);
}
}retryAfter respeta tanto segundos como una fecha HTTP y vale null cuando la cabecera no está presente o no es válida. El SDK no reintenta automáticamente.
Los errores de red y la cancelación de fetch mediante AbortSignal no se convierten en InceptivaApiError.
Todos los errores conservan status, code, message, el alias compatible detail y responseMetadata con límites de velocidad y consumo.
Códigos funcionales
| Categoría | Códigos |
|---|---|
| Autenticación | missing_api_key, invalid_api_key, ip_not_allowed |
| Límites | rate_limit_exceeded, rate_limit_unavailable, usage_limit_exceeded |
| Entrada | message_too_large, metadata_too_large, metadata_too_many_keys, metadata_too_deep, metadata_invalid_key, metadata_invalid_value, metadata_list_too_large |
| Idempotencia | idempotency_key_reused, idempotency_request_in_progress |
| Conversación | external_reference_mismatch, conversation_not_found |
| Generación | generation_failed |
· SDKv0.4.0