Ejemplo de respuesta de error
Campos que siempre recibirás
generation_id: ID de solicitud estable que puedes compartir con soporte.status_code: coincide con el código de estado HTTP.error: código de error legible por máquina, comovalidation_error.error_type: categoría general, normalmenteuserosystem.error_origin: indica si el problema se debió principalmente al solicitante, a Phaseo o a un proveedor ascendente.description: explicación en lenguaje claro de lo ocurrido.details(opcional): detalles estructurados de validación cuando el error se debe a una solicitud no válida.
Otros campos que pueden aparecer
Algunos errores incluyen más detalles para ayudarte a corregir el problema más rápido:reason: motivo más específico, comoall_candidates_failedopricing_not_configured.provider_candidate_diagnosticsyprovider_enablement: explican por qué no se pudo usar un modelo con el endpoint solicitado.routing_diagnostics: información adicional sobre cómo el enrutamiento o las comprobaciones de disponibilidad limitaron la solicitud.provider_failure_diagnostics: sugerencias sobre credenciales ausentes, falta de acceso, restricciones regionales, límites de tasa y otros fallos del proveedor.upstream_erroryfailure_sample: resumen aproximado del primer fallo del proveedor, si la solicitud llegó a un proveedor.failed_providers,failed_statusesyattempt_count: contexto adicional sobre reintentos y conmutación por error.
Cómo interpretar las clases de estado
Códigos de error habituales
Cuando falla un proveedor
Si Phaseo llegó a un proveedor, pero la solicitud sigue fallando, es posible que veas:provider_failure_diagnostics.categoryprovider_failure_diagnostics.hintprovider_failure_diagnostics.provider
credentials_not_configuredcredentials_invalid_or_forbiddenprovider_access_missingregion_or_project_restrictionmodel_unavailable_for_endpointrate_limitedserver_error
Cuando un modelo o endpoint no está disponible
En respuestasunsupported_model_or_endpoint, Phaseo puede incluir:
provider_candidate_diagnosticsprovider_enablementmissing_pricing_providersrouting_diagnostics
- un modelo conocido que aún no está activo
- un modelo que no es compatible con el endpoint solicitado
- datos de precios ausentes
- restricciones de despliegue o disponibilidad interna
provider_candidate_diagnostics.totalProviders: cantidad de proveedores conocidos para el modelo antes de filtrar por endpoint.provider_candidate_diagnostics.supportsEndpointCount: cantidad de esos proveedores compatibles con el endpoint solicitado.provider_candidate_diagnostics.candidateCount: cantidad de proveedores que quedaron después de las comprobaciones de adaptadores.provider_candidate_diagnostics.droppedUnsupportedEndpoint: proveedores descartados porque no admiten el endpoint.provider_candidate_diagnostics.droppedMissingAdapter: pares proveedor/endpoint descartados porque todavía no hay un adaptador de Gateway para ese endpoint.provider_enablement.capability: control de capacidad que se aplica, comovideo_generation.provider_enablement.providersBefore/provider_enablement.providersAfter: proveedores antes y después del filtrado por capacidad o habilitación.provider_enablement.dropped[].reason: motivos legibles por máquina, comopricing_missing.routing_diagnostics.filterStages[].stage: etapa de enrutamiento, por ejemplo, filtrado de capacidad, despliegue o estado de enrutamiento.routing_diagnostics.filterStages[].beforeCount/routing_diagnostics.filterStages[].afterCount: número de proveedores antes y después de cada etapa.routing_diagnostics.filterStages[].droppedProviders[].reason: motivos legibles por máquina, como restricciones de despliegue o enrutamiento.
Ejemplo
Modo de depuración opcional
La mayoría de los esquemas de solicitud admiten un objetodebug para investigar problemas de forma controlada:
enabledreturn_upstream_requestreturn_upstream_responsetracetrace_level(summaryofull)
Estrategia de reintentos
- Errores de la serie 400 salvo 429: corrige la solicitud, las credenciales o la política de acceso antes de reintentar.
- 429: usa espera progresiva exponencial y respeta el encabezado
Retry-After. - Errores de la serie 500: usa reintentos limitados solo cuando sea seguro repetir la operación. Un envío con resultado incierto puede haber creado ya un trabajo o generado un cargo; recupera un trabajo aceptado en lugar de enviarlo de nuevo.
Notas específicas de streaming
- Si la solicitud falla antes de empezar el streaming, recibirás una respuesta de error JSON estándar.
- Si falla a mitad del flujo, trata el flujo parcial como incompleto y ofrece la opción de reintentar.
- Registra siempre
generation_idy los metadatos del endpoint y del modelo.
Consejos para resolver problemas
- Consulta la página de estado de Gateway para ver incidentes en curso.
- Compara el cuerpo de tu solicitud con la documentación del endpoint.
- Comparte
generation_idal contactar con soporte.
Recursos relacionados
Autenticación
Autentícate con claves de API Bearer.
Límites
Gestiona la limitación de tasa y los reintentos impuestos por proveedores.
Streaming
Usa SSE de forma segura en flujos de producción.