For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navegação principal
Theme

Erros e recuperação

Entenda os erros da API de Agentes e saiba como se recuperar deles com segurança.

Para erros HTTP em geral e exceções do SDK, consulte o guia de códigos de erro.

Como investigar um erro

Em caso de erro de requisição, verifique a resposta HTTP. Para falhas durante um turno ou na preparação do ambiente, verifique os eventos e o estado salvo.

Falha Onde verificar
Requisição à API Consulte o código de status HTTP e o objeto error da resposta.
Turno Ao receber agent.session.turn.failed, recupere o turno e verifique status e error.
Sessão Ao receber agent.session.failed, recupere a sessão e verifique status e error.
Ambiente Consulte environment.error no evento agent.session.environment.failed. Veja como resolver problemas do sandbox.

Para erros estruturados, use error.code na lógica do aplicativo e error.message para explicar a falha. Em erros de validação da requisição, error.param pode indicar qual campo corrigir. O código de tratamento de erros deve funcionar mesmo quando o código de erro for desconhecido ou param estiver ausente.

Na API beta (OpenAI-Beta: agents=v1), o campo error da sessão contém uma mensagem de texto ou null. Consulte o evento SSE error correspondente para obter o código da falha da sessão.

Erros de requisição à API

Esses erros se referem à requisição enviada à API de Agentes. São distintos dos erros de turno, que a API retorna após o início do trabalho.

Código Descrição
400: invalid_request_error Causa: Um valor de entrada ou de configuração é inválido ou grande demais.
Solução: Corrija o campo indicado por error.param ou error.message. Veja como corrigir entradas inválidas.
400: invalid_beta Causa: O cabeçalho OpenAI-Beta contém um valor inválido.
Solução: Confira o cabeçalho exigido pela versão da API que você usa.
400: agent_not_persisted Causa: O agent_id informado pertence a um agente que só existe naquela sessão.
Solução: Crie um agente salvo e use o ID dele.
400: invalid_otlp_endpoint, invalid_otlp_header Causa: O endpoint ou os cabeçalhos de rastreamento são inválidos.
Solução: Corrija a configuração de rastreamento.
401: unauthorized; 403: forbidden Causa: A autenticação falhou ou quem fez a requisição não tem acesso.
Solução: Consulte as orientações sobre autenticação e permissões.
404: not_found_error, model_not_found Causa: O recurso ou modelo não está disponível para essa requisição.
Solução: Confira o ID, o modelo e o projeto. Verifique também se o recurso foi excluído.
409: conflict_error Causa: A operação é incompatível com o estado atual do recurso.
Solução: Leia a mensagem e recupere o estado atual antes de tentar novamente.
409: executor_version_incompatible Causa: A versão do executor não é compatível.
Solução: Atualize o executor e tente novamente.
424: mcp_server_startup_failed Causa: Um servidor MCP não conseguiu iniciar.
Solução: Confira a configuração e as credenciais do servidor. Veja como resolver problemas de conexão.
429: files_api_rate_limit_exceeded Causa: As requisições que acessam arquivos excederam o limite da API de Arquivos para seu usuário.
Solução: Reduza o número de requisições simultâneas e siga as orientações sobre limites de taxa da API de Arquivos.
500: internal_error Causa: Ocorreu um erro inesperado no serviço.
Solução: Verifique o trabalho salvo antes de tentar novamente. Consulte as orientações sobre erros de servidor.
503: service_unavailable_error, server_is_overloaded Causa: O serviço ou uma de suas dependências está temporariamente indisponível ou sob sobrecarga.
Solução: Siga as orientações sobre o erro 503 e verifique o trabalho salvo antes de tentar novamente.

Limites de taxa da API de Arquivos

Requisições para criar sessões ou anexar arquivos podem retornar HTTP 429 com files_api_rate_limit_exceeded. A API de Agentes usa a API de Arquivos para verificar os arquivos. Essas verificações consomem a cota do usuário autenticado na API de Arquivos. Cada arquivo anexado pode exigir uma verificação separada.

{
  "error": {
    "type": "rate_limit_error",
    "code": "files_api_rate_limit_exceeded",
    "message": "The Files API rate limit for your user has been exceeded. Reduce the rate of requests that access files, then try again.",
    "param": null
  }
}

Reduza o número de requisições simultâneas que acessam arquivos. Limite o número de tentativas e aumente exponencialmente o intervalo entre elas. Novas tentativas imediatas podem continuar esgotando a cota.

Essa resposta HTTP indica que a operação falhou. O caso é diferente de uma sessão ou de um turno que falha de forma assíncrona após uma resposta de criação bem-sucedida. Para identificar essa condição, verifique error.code em vez de comparar o texto da mensagem.

Erros de turno

Um turno que falhou tem status: "failed" e um objeto error com os campos code e message. Por exemplo, se o modelo estiver sobrecarregado, o erro poderá ser:

{
  "code": "server_overloaded",
  "message": "The model is temporarily overloaded. Please retry your request after a brief delay."
}

Os códigos de erro de turno não têm um status HTTP próprio. Por exemplo, em caso de sobrecarga, um turno que falhou usa server_overloaded, enquanto uma resposta HTTP pode usar server_is_overloaded.

Código Descrição
invalid_request Causa: A entrada ou a configuração é inválida.
Solução: Corrija a entrada indicada na mensagem antes de tentar novamente.
context_length_exceeded Causa: A entrada excede a janela de contexto do modelo.
Solução: Reduza a entrada. Se a conversa estiver longa demais, inicie uma nova sessão com um resumo mais curto.
session_budget_exceeded Causa: A sessão esgotou seu orçamento de uso.
Solução: Inicie uma nova sessão para continuar.
credit_balance_exhausted Causa: A organização esgotou os créditos da API.
Solução: Consulte as orientações sobre o saldo de créditos.
project_spend_limit_exceeded Causa: O projeto atingiu o limite de gastos imposto a ele.
Solução: Consulte as orientações sobre o limite de gastos do projeto.
organization_spend_limit_exceeded Causa: A organização atingiu o limite de gastos imposto a ela.
Solução: Consulte as orientações sobre o limite de gastos da organização.
organization_usage_limit_exceeded Causa: A organização atingiu o limite de uso definido pela OpenAI.
Solução: Consulte as orientações sobre o limite de uso da organização.
usage_limit_exceeded Causa: Um limite de cobrança ou de uso foi atingido, sem um código de erro mais específico.
Solução: Siga as orientações sobre erros de cobrança.
rate_limit_exceeded Causa: As requisições excederam um limite de taxa aplicável.
Solução: Siga as etapas para tentar novamente.
server_overloaded Causa: O serviço do modelo está temporariamente sobrecarregado.
Solução: Aguarde um pouco antes de retomar o trabalho pendente. Se a sobrecarga persistir, altere o modelo para os próximos turnos.
flex_unavailable Causa: O processamento Flex está temporariamente indisponível.
Solução: Tente novamente mais tarde ou altere o nível de serviço da sessão para usar o processamento padrão (default) nos próximos turnos.
connection_failed, request_timeout, server_error, internal_error Causa: Uma falha de conexão, o esgotamento do tempo de espera ou uma falha do serviço impediu a conclusão do turno.
Solução: Verifique o trabalho salvo e tente novamente, limitando o número de tentativas.
authentication_error Causa: O acesso ao modelo falhou devido às credenciais ou permissões.
Solução: Consulte as orientações sobre autenticação e permissões.
resource_not_found Causa: O modelo ou recurso solicitado está indisponível.
Solução: Verifique o modelo e a configuração da sessão antes de tentar novamente.
sandbox_error Causa: O ambiente não conseguiu concluir uma operação.
Solução: Examine o erro do ambiente e corrija o problema de configuração ou conectividade.
executor_version_incompatible Causa: O executor não consegue executar este turno.
Solução: Atualize o executor e tente novamente na mesma sessão, caso ela não tenha falhado.
active_turn_not_steerable Causa: O turno ativo não aceita mais entradas.
Solução: Aguarde o término do turno antes de enviar outra mensagem.
cyber_policy, misalignment_policy_violation Causa: Os sistemas de segurança bloquearam a requisição.
Solução: Verifique se a requisição atende aos requisitos de segurança aplicáveis antes de enviar a entrada revisada.

Erros de sessão e de ambiente

Uma falha no turno nem sempre indica que a sessão falhou. Recupere a sessão para verificar se é possível continuar nela. Se o valor de status for requires_action, execute as ações necessárias. Se a sessão tiver falhado, corrija a causa e crie uma nova sessão com as entradas de que ainda precisa.

Código Descrição
environment_connection_failed, environment_connection_timeout Causa: O sandbox não conseguiu se conectar ou demorou demais para estabelecer a conexão.
Solução: Verifique a inicialização do executor e o acesso à rede. Em ambientes com hospedagem própria, confira a configuração da conexão.
sandbox_error Causa: Houve uma falha na preparação ou na execução do sandbox.
Solução: Examine os comandos de preparação, os pacotes, os arquivos de entrada e o erro do ambiente.
executor_version_incompatible Causa: A versão do executor da sessão não é compatível.
Solução: Atualize o executor antes de criar uma nova sessão.
idle_timeout Causa: O ambiente hospedado expirou por inatividade.
Solução: Crie uma nova sessão e forneça as entradas novamente.
internal_error Causa: Uma falha interna impediu que a sessão ou o ambiente ficasse pronto para uso.
Solução: Aguarde um pouco e repita a preparação. Se a falha persistir, entre em contato com o suporte.

Recuperação

Como tentar novamente após falhas temporárias

Use este procedimento quando um limite de taxa for excedido, houver sobrecarga, o tempo de espera se esgotar ou o serviço falhar temporariamente. Em caso de problemas com a entrada, as credenciais ou os limites de cobrança, corrija a causa antes de tentar novamente.

  1. Verifique o resultado. Se uma sessão tiver sido criada, recupere a sessão, o turno e os itens salvos. Se o turno ainda estiver ativo, continue acompanhando a execução. Se já tiver sido concluído, use o resultado.
  2. Verifique as ações concluídas. Um turno que falhou pode já ter alterado arquivos ou chamado ferramentas externas. Confirme os efeitos dessas ações antes de pedir ao agente que repita o trabalho.
  3. Aguarde e limite o número de tentativas. Siga as orientações para novas tentativas. Respeite o intervalo indicado por Retry-After nas respostas HTTP e defina um número máximo de tentativas ou um prazo.
  4. Repita a requisição ou inicie um novo turno. Em caso de erro HTTP, verifique o resultado da operação original antes de repeti-la. Se o turno tiver falhado, aguarde até que a sessão esteja no estado idle e envie outra mensagem pedindo ao agente que retome apenas o trabalho pendente. Isso inicia um novo turno na conversa existente.

Examine os resultados das ferramentas mesmo quando o turno for concluído. Interrompa as tentativas automáticas se o erro mudar ou se o número de tentativas atingir o limite.

Como corrigir entradas inválidas

Antes de reenviar a requisição, corrija o campo indicado por error.param ou error.message.

Em caso de erros de tamanho, reduza o tamanho da entrada e do schema de saída ou do resultado da ferramenta antes de tentar novamente. Se a configuração do agente for grande demais, crie uma nova sessão com instruções e definições de ferramentas mais curtas.

Para consultar os requisitos de upload e ver exemplos, veja como resolver erros de upload. Se a mensagem indicar um problema com uma imagem, verifique os dados ou a URL da imagem.

Fluxos desconectados

Um evento error ou a desconexão do fluxo não confirma o estado final do turno. Siga as etapas para recuperar um fluxo desconectado e restabelecer a conexão. Verifique o trabalho salvo antes de reenviar a entrada. Se a sessão recuperada tiver status: "failed" ou se você receber agent.session.failed, interrompa as tentativas de reconexão e siga as orientações para recuperar a sessão.

Em caso de erros persistentes, inclua os IDs da requisição, da sessão e do turno ao entrar em contato com o suporte.