Exemplo de resposta de erro
Campos que você sempre receberá
generation_id: ID estável da solicitação que você pode compartilhar com o suporte.status_code: corresponde ao código de status HTTP.error: código de erro legível por máquina, comovalidation_error.error_type: classe geral, normalmenteuserousystem.error_origin: indica se o problema foi causado principalmente pelo solicitante, pela Phaseo ou por um provedor upstream.description: explicação simples do que aconteceu.details(opcional): detalhes estruturados de validação quando o erro está na validação da solicitação.
Outros campos que podem aparecer
Alguns erros trazem mais detalhes para ajudar a corrigir o problema rapidamente:reason: motivo mais específico, comoall_candidates_failedoupricing_not_configured.provider_candidate_diagnosticseprovider_enablement: explicam por que um modelo não pôde ser usado com o endpoint solicitado.routing_diagnostics: detalhes adicionais sobre como o roteamento ou as verificações de disponibilidade restringiram as opções.provider_failure_diagnostics: dicas sobre credenciais ausentes, falta de acesso, restrições regionais, limites de taxa e falhas semelhantes do provedor.upstream_errorefailure_sample: resumo aproximado da primeira falha do provedor, se a solicitação chegou até ele.failed_providers,failed_statuseseattempt_count: contexto adicional de novas tentativas e failover.
Interprete as classes de status
Códigos de erro comuns
Quando um provedor falha
Se a Phaseo chegou a um provedor, mas a solicitação ainda falhou, você poderá ver: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
Quando um modelo ou endpoint não está disponível
Para respostasunsupported_model_or_endpoint, a Phaseo pode incluir:
provider_candidate_diagnosticsprovider_enablementmissing_pricing_providersrouting_diagnostics
- um modelo conhecido que ainda não está ativo
- um modelo incompatível com o endpoint solicitado
- dados de preço ausentes
- restrições de rollout ou disponibilidade interna
provider_candidate_diagnostics.totalProviders: número de provedores conhecidos para o modelo antes do filtro por endpoint.provider_candidate_diagnostics.supportsEndpointCount: número desses provedores compatíveis com o endpoint solicitado.provider_candidate_diagnostics.candidateCount: número de provedores restantes após as verificações de adaptador.provider_candidate_diagnostics.droppedUnsupportedEndpoint: provedores removidos por não oferecerem suporte ao endpoint.provider_candidate_diagnostics.droppedMissingAdapter: pares provedor/endpoint removidos porque ainda não existe um adaptador do Gateway para esse endpoint.provider_enablement.capability: recurso sob verificação, comovideo_generation.provider_enablement.providersBefore/provider_enablement.providersAfter: provedores antes e depois dos filtros de capacidade ou habilitação.provider_enablement.dropped[].reason: motivos legíveis por máquina, comopricing_missing.routing_diagnostics.filterStages[].stage: etapa de roteamento, por exemplo filtro de capacidade, rollout ou estado de roteamento.routing_diagnostics.filterStages[].beforeCount/routing_diagnostics.filterStages[].afterCount: quantidade de provedores antes e depois de cada etapa.routing_diagnostics.filterStages[].droppedProviders[].reason: motivos legíveis por máquina, como restrições de rollout ou roteamento.
Exemplo
Modo de depuração opcional
A maioria dos esquemas de solicitação aceita um objetodebug para investigação controlada:
enabledreturn_upstream_requestreturn_upstream_responsetracetrace_level(summaryoufull)
Estratégia de novas tentativas
- Erros da série 400, exceto 429: corrija a requisição, as credenciais ou a política de acesso antes de tentar novamente.
- 429: implemente espera exponencial e respeite o cabeçalho
Retry-After. - Erros da série 500: use tentativas limitadas apenas quando for seguro repetir a operação. Um envio com resultado incerto pode já ter criado um trabalho ou gerado uma cobrança; consulte um trabalho aceito em vez de enviá-lo novamente.
Observações específicas sobre streaming
- Se a solicitação falhar antes do início do streaming, você receberá um payload JSON de erro padrão.
- Se falhar no meio do fluxo, considere o trecho parcial incompleto e ofereça a opção de tentar novamente.
- Sempre registre
generation_ide os metadados do endpoint/modelo.
Dicas para solucionar problemas
- Consulte a página de status do Gateway para verificar incidentes em andamento.
- Compare o payload da solicitação com a documentação do endpoint.
- Informe
generation_idao entrar em contato com o suporte.
Recursos relacionados
Autenticação
Autentique-se com chaves de API Bearer.
Limites
Lide com limitações de taxa e novas tentativas definidas pelos provedores.
Streaming
Use SSE com segurança em fluxos de produção.