Quando são feitos pedidos de API através do Apigee, os componentes do Apigee, os routers e os processadores de mensagens, ou os servidores de back-end, podem devolver erros às aplicações cliente.
Erros do processador de mensagens
O Message Processor é o componente principal do Apigee que processa as políticas e
interage com os servidores de back-end. Pode devolver erros se detetar problemas, como:
Problemas de conetividade de rede, falhas de handshake TLS, indisponibilidade do servidor de back-end,
falta de resposta durante a comunicação com o servidor de back-end
Falhas durante a execução da política
Cabeçalhos HTTP, codificação, caminho inválidos, não conformidade com as especificações HTTP, exceder os limites de produtos, etc.:
Com o pedido HTTP enviado pelas aplicações cliente
OU
Com a resposta HTTP enviada pelo servidor de back-end
E muito mais
Erro de exemplo do processador de mensagens
O processador de mensagens devolve sempre um Código de estado HTTP seguido de uma mensagem de erro, juntamente com um código de erro no formato JSON, conforme mostrado abaixo:
A aplicação cliente recebe um código de resposta semelhante ao seguinte exemplo:
HTTP/1.1 504 Gateway Timeout
Uma resposta de erro do processador de mensagens aparece no seguinte formato:
Contém a mensagem de erro que descreve a possível causa do erro
errorcode
Código de erro (também denominado código de falha) associado ao
erro
reason
Contém uma mensagem que indica o possível motivo do erro
Catálogo de erros de tempo de execução
Este catálogo de erros fornece todas as informações de que precisa acerca dos códigos de erro de tempo de execução (para erros não relacionados com políticas) devolvidos pelo componente Apigee Message
Processor. Inclui as seguintes informações para cada um dos códigos de erro:
Código de estado HTTP
Mensagem de erro
Motivo do erro (nem todas as mensagens de erro apresentam um
reason)
Possíveis causas do erro
Quaisquer especificações de HTTP associadas e/ou limites de produtos
Guias interativos e vídeos que contêm instruções para diagnosticar a causa do erro e
soluções eficazes que pode aplicar para resolver o erro sozinho (quando disponíveis)
Correções que pode aplicar para resolver o erro
As seguintes categorias de códigos de erro estão abrangidas:
Use a caixa Pesquisar abaixo para filtrar a tabela e apresentar as informações acima
para um código de erro específico. Pode pesquisar o código de estado ou qualquer conteúdo em qualquer campo
na tabela.
searchPesquisa
Código de erro
Descrição
Corrigir
flow.*
flow.APITimedOut
Código de estado HTTP:
504 Gateway Timeout
Mensagem de erro:
API timed out
Causa possível:
Este erro ocorre se:
O servidor de back-end não responde dentro do período de limite de tempo configurado
pela propriedade
api.timeout para o proxy de API específico.
Uma política demora muito tempo devido a operações computacionalmente intensivas, carga
elevada ou desempenho fraco.
flow.SharedFlowNotFound
Código de estado HTTP:
500 Internal Server Error
Mensagem de erro:
Shared Flow {shared_flow_name} Not Found
Causa possível:
Este erro ocorre se o fluxo partilhado específico:
A codificação especificada no cabeçalho do pedido HTTP
Content-Encoding é válida e suportada pelo Apigee,
MAS
O formato da carga útil enviado pelo cliente como parte do pedido HTTP não corresponde ao formato de codificação especificado no cabeçalho Content-Encoding
A codificação especificada no cabeçalho da resposta HTTP Content-Encoding do servidor de back-end/destino é válida e suportada pelo Apigee,
MAS
O formato da carga útil enviada pelo servidor de back-end/destino como parte da resposta HTTP não corresponde ao formato de codificação especificado no cabeçalho Content-Encoding
messaging.adaptors.http.flow.ErrorResponseCode
Código de estado HTTP:
500
Mensagem de erro:
A mensagem de erro e o formato podem variar consoante a implementação do servidor de back-end.
Causa possível:
Este erro ocorre se o servidor de back-end responder ao Apigee com o código de estado 500.
Código de estado HTTP:
503
Mensagem de erro:
A mensagem de erro e o formato podem variar consoante a implementação do servidor de back-end.
Causa possível:
Este erro ocorre se o servidor de back-end responder ao Apigee com o código de estado 503.
Código de estado HTTP:
504
Mensagem de erro:
A mensagem de erro e o formato podem variar consoante a implementação do servidor de back-end.
Causa possível:
Este erro ocorre se o servidor de back-end responder ao Apigee com o código de estado 504.
Nota: o código de erro
messaging.adaptors.http.flow.ErrorResponseCode não é devolvido
como parte da mensagem de erro enviada para as aplicações cliente. Isto deve-se ao facto de este código de erro ser definido pelo Apigee sempre que o servidor de back-end responde com um erro e qualquer um dos códigos de estado 4XX ou 5XX. Pode ver este código de erro na monitorização da API
ou na base de dados de estatísticas.
messaging.adaptors.http.flow.GatewayTimeout
Código de estado HTTP:
504 Gateway Timeout
Mensagem de erro:
Gateway Timeout
Motivo:
TARGET_READ_TIMEOUT
Causa possível:
Este erro ocorre se o servidor de back-end não responder ao processador de mensagens do Apigee dentro do período de limite de tempo de E/S configurado no processador de mensagens.
messaging.adaptors.http.flow.InternalServerError
Código de estado HTTP:
500 Internal Server Error
Mensagem de erro:
Internal server error at backend
Motivo:
SERVER_ERROR
Causa possível:
Este erro ocorre num dos seguintes cenários:
A aplicação de back-end encontrou uma exceção ou um erro não processado durante o processamento do pedido do Apigee. Isto pode dever-se a problemas como lógica defeituosa, entrada inesperada ou outros problemas de tempo de execução no código da aplicação.
O servidor de back-end pode não ter conseguido estabelecer ligação à respetiva base de dados ou uma consulta à base de dados pode ter falhado. Isto pode acontecer devido à conetividade de rede, a credenciais da base de dados incorretas, à indisponibilidade do servidor da base de dados ou a problemas com o esquema ou os dados da base de dados.
Se o seu servidor de back-end depender de outros serviços internos ou externos, como APIs, filas de mensagens ou sistemas de colocação em cache, uma falha numa destas dependências pode fazer com que devolva um erro 500 ao Apigee. O back-end pode não conseguir comunicar com o serviço dependente ou pode receber respostas de erro do mesmo.
O servidor de back-end pode estar sobrecarregado devido a tráfego elevado, memória insuficiente (RAM), utilização excessiva da CPU ou pouco espaço em disco. Quando o servidor não tem recursos adequados, não consegue processar pedidos e responde com um erro 500.
As definições incorretas no servidor de back-end podem causar erros inesperados durante o processamento de pedidos. Isto inclui problemas com configurações do servidor, definições da aplicação ou configurações de implementação.
Pode existir um erro subjacente no código da aplicação de back-end que é acionado pelo pedido específico do Apigee. Estes erros podem não ser evidentes em circunstâncias normais, mas são expostos por determinados padrões de pedidos ou dados.
messaging.adaptors.http.flow.LengthRequired
Código de estado HTTP:
411 Length Required
Mensagem de erro:
'Content-Length' is missing
Motivo:
CLIENT_REQUEST_CONTENT_LENGTH_REQUIRED
Causa possível:
Este erro ocorre se o cabeçalho Content-Length não for transmitido pela
aplicação cliente como parte dos pedidos HTTP POST e PUT
enviados para o Apigee.
Nota: não é possível capturar os pedidos que falham com este erro na ferramenta de rastreio, uma vez que o processador de mensagens realiza esta validação numa fase muito inicial, muito antes de processar o pedido e executar qualquer política no proxy da API.
Certifique-se de que a aplicação cliente transmite sempre o cabeçalho
Content-Length como parte dos pedidos HTTP POST e
PUT enviados para o Apigee. Por exemplo:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Mesmo que esteja a transmitir um payload vazio com pedidos POST e PUT, certifique-se de que o cabeçalho Content-Length: 0 é transmitido. Por exemplo:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Código de estado HTTP:
503 Service Unavailable
Mensagem de erro:
The Service is temporarily unavailable
Motivo:
TARGET_HEALTHCHECK_CONNECT_TIMEOUT
TARGET_HEALTHCHECK_CONNECTION_REFUSED
TARGET_HEALTHCHECK_HTTPS_REQUEST_OVER_HTTP
TARGET_HEALTHCHECK_UNEXPECTED_EOF
Causa possível:
Este erro ocorre num dos seguintes cenários,
se estiver a usar
TargetServer no Apigee:
A resolução de DNS incorreta do anfitrião do servidor de back-end
pelo servidor de autorização personalizado resultou em endereços IP incorretos, o que originou
erros de ligação.
Erros de limite de tempo da ligação devido a:
A restrição da firewall no servidor de back-end impede que o Apigee se ligue ao servidor de back-end.
Problemas de conetividade de rede entre o Apigee e o servidor de back-end.
O anfitrião especificado no TargetServer está incorreto ou tem carateres indesejados (como um espaço).
Este erro também pode ocorrer se as verificações de funcionamento configuradas para monitorizar a verificação de funcionamento dos servidores de destino falharem.
messaging.adaptors.http.flow.RequestTimeOut
Código de estado HTTP:
408 Request Timeout
Mensagem de erro:
Request timed out
Motivo:
CLIENT_READ_TIMEOUT
Causa possível:
Este erro ocorre se o processador de mensagens do Apigee não receber a carga útil do pedido da aplicação cliente durante o período de limite de tempo de E/S configurado no componente do processador de mensagens.
Corrigir
Certifique-se de que a aplicação cliente envia o payload do pedido dentro do período de tempo limite de E/S configurado no componente Message Processor do Apigee.
messaging.adaptors.http.flow.ServiceUnavailable
Código de estado HTTP:
503 Service Unavailable
Mensagem de erro:
The Service is temporarily unavailable
Motivo:
TARGET_CONNECT_TIMEOUT
TARGET_WRITE_BROKEN_PIPE
TARGET_WRITE_CONNECTION_RESET_BY_PEER
TARGET_CONNECT_CONNECTION_REFUSED
Causa possível:
Este erro ocorre num dos seguintes cenários:
A resolução de DNS incorreta do anfitrião do servidor de back-end pelo servidor de autorização personalizado resultou em endereços IP incorretos, o que levou a erros de ligação.
Erros de limite de tempo da ligação devido a:
A restrição da firewall no servidor de back-end impede que o Apigee se ligue ao servidor de back-end.
Problemas de conetividade de rede entre o Apigee e o servidor de back-end.
O anfitrião do servidor de destino especificado no ponto final de destino está incorreto ou tem carateres indesejados (como um espaço).
Este erro também pode ocorrer se o servidor de back-end fechar prematuramente a ligação enquanto o processador de mensagens ainda estiver a enviar o payload do pedido para o servidor de back-end.
messaging.adaptors.http.flow.SslHandshakeFailed
Código de estado HTTP:
503 Service Unavailable
Mensagem de erro:
SSL Handshake failed {error_message}
Causa possível:
Este erro ocorre durante o processo de estabelecimento de ligação SSL entre o Message Processor do Apigee e o servidor de back-end se:
O truststore do processador de mensagens do Apigee:
Contém uma cadeia de certificados que não corresponde à cadeia de certificados completa do servidor de back-end
OU
Não contém a cadeia de certificados completa do servidor de back-end
A cadeia de certificados apresentada pelo servidor de back-end:
Contém um nome de domínio totalmente qualificado (FQDN) que não corresponde ao nome do anfitrião especificado no ponto final de destino
OU
Contém uma cadeia de certificados incorreta/incompleta
O servidor de back-end rejeita a versão TLS usada pelo Apigee.
Por exemplo, se o servidor de back-end aceitar apenas a versão 1.3 do TLS, mas o
servidor de destino do lado do Apigee tiver a versão 1.2 do TLS definida no respetivo
campo TLS Protocol (ou não tiver nenhuma versão do TLS definida, caso em que o
Apigee não usa atualmente a versão 1.3 do TLS como predefinição), a
ligação falha devido a uma incompatibilidade das versões do protocolo.
OTargetServer não está configurado corretamente para suportar ligações TLS/SSL
no Apigee.
O servidor de back-end pode fechar a ligação abruptamente,
enquanto o Apigee aguarda uma resposta do servidor de back-end.
Tempos limite de manutenção ativos configurados incorretamente no Apigee e no servidor de back-end.
messaging.adaptors.http.flow.BadGateway
Código de estado HTTP:
502 Bad Gateway
Mensagem de erro:
Bad Gateway
Causa possível:
Este erro ocorre se o servidor de destino enviar uma resposta HTTP com formato incorreto de volta para o Apigee.
messaging.runtime.*
messaging.runtime.RouteFailed
Código de estado HTTP:
500 Internal Server Error
Mensagem de erro:
Unable to route the message to a TargetEndpoint
Causa possível:
Este erro ocorre se o Apigee não conseguir encaminhar o pedido para nenhum dos
TargetEndpoints porque:
Não existe uma condição de regra de encaminhamento (<RouteRule>) que
corresponda ao pedido num proxy
E
Não existe nenhuma regra de trajeto predefinida definida no ProxyEndpoint
(ou seja, <RouteRule> sem qualquer condição)
Corrigir
Para resolver este erro, siga estas instruções:
Reveja as regras de encaminhamento definidas no seu ProxyEndpoint e modifique-as para garantir que
existe, pelo menos, uma condição de regra de encaminhamento que corresponda ao seu pedido.
É uma boa prática definir uma regra de trajeto predefinida sem condição
quando tem várias regras de trajeto.
Certifique-se de que a regra de encaminhamento predefinida é sempre definida por último na lista de encaminhamentos condicionais, porque as regras são avaliadas de cima para baixo no ProxyEndpoint.
Para saber mais acerca da definição de <RouteRule>condições num
ProxyEndpoint, consulte
Alvos condicionais.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Código de estado HTTP:
500 Internal Server Error
Mensagem de erro:
Bad Form Data
Causa possível:
Este erro ocorre se e apenas se forem cumpridas todas as condições seguintes:
O pedido HTTP enviado pelo cliente para o Apigee
contém:
Content-Type: application/x-www-form-urlencoded,
e
Dados de formulários com o sinal de percentagem (%), ou o sinal de percentagem (%) seguido de carateres hexadecimais inválidos que não são permitidos de acordo com a secção
Forms - Section 17.13.4.1.
O proxy de API no Apigee lê os parâmetros do formulário específicos que contêm carateres não permitidos através da política ExtractVariables ou AssignMessage no fluxo de pedidos.
protocol.http.DuplicateHeader
Código de estado HTTP:
400 Bad Request
Mensagem de erro:
Duplicate Header "{header_name}"
Causa possível:
Este erro ocorre se um cabeçalho HTTP específico que não pode ter duplicados
no Apigee aparecer mais do que uma vez com valores iguais ou diferentes como parte do
pedido HTTP enviado pela aplicação cliente para o Apigee.
Certifique-se de que o pedido HTTP enviado pela aplicação cliente
para o Apigee contém sempre um nome de cabeçalho válido de acordo com a
RFC 7230, secção 3.2: Campos de cabeçalho.
protocol.http.HeaderNameWithNonAsciiChar
Código de estado HTTP:
400 Bad Request
Mensagem de erro:
Header {header_name} contains non ascii character {character}
Causa possível:
Este erro ocorre se o nome do cabeçalho enviado como parte do pedido HTTP
pela aplicação cliente para o Apigee contiver carateres não ASCII.
Header {header_name} contains invalid character {character}
Causa possível:
Este erro ocorre se o nome do cabeçalho enviado como parte do pedido HTTP
pela aplicação cliente para o Apigee contiver carateres inválidos, como
igual (=), vírgula (,), ponto e vírgula (;), tabulação, CRLF e caráter de nova linha.
Este erro ocorre se o caminho no URL do pedido HTTP enviado pela aplicação cliente
para o Apigee contiver carateres que não são permitidos de acordo com a especificação
RFC 3986, secção 3.3: Caminho.
Certifique-se de que o caminho no URL do pedido HTTP enviado pela aplicação cliente para o Apigee não contém carateres que não sejam permitidos
de acordo com a RFC 3986, secção 3.3: Path.
protocol.http.MessageReadError
Código de estado HTTP:
502 Bad Gateway
Mensagem de erro:
Unexpected I/O after message headers have been read.
Causa possível:
Este erro raro ocorre quando o MP recebe I/O num canal quando não o está a esperar. O
MP está a ler um pedido, leu todos os cabeçalhos e está definido
para ler o payload do pedido. Em seguida, encontra um evento de E/S que parece ser para os mesmos cabeçalhos.
Corrigir
Localize a mensagem de registo para mais informações sobre o que está a acontecer.
logger.atSevere().log(
"Unexpected I/O after message headers have been read. Channel diagnostics=%s."
+ " HeartBeat=%s",
input.client().getDiagnostic(), message.getHeaders().isHeartBeat());
protocol.http.NoResolvedHost
Código de estado HTTP:
503 Service Unavailable
Mensagem de erro:
Unable to resolve host {hostname}
Onde: {hostname} é dinâmico e o respetivo valor
vai mudar relativamente ao nome do anfitrião fornecido.
Motivo:
TARGET_CONNECT_HOST_NOT_REACHABLE
Causa possível:
Este erro ocorre se o anfitrião do servidor de destino especificado estiver incorreto ou tiver carateres indesejados (como um espaço).
protocol.http.TooBigBody
Código de estado HTTP:
413 Request Entity Too Large
Mensagem de erro:
Body buffer overflow
Causa possível:
Este erro ocorre se o tamanho da carga útil enviada pela aplicação cliente como parte do pedido HTTP para o Apigee for superior ao limite permitido no Apigee.
O tamanho total de todos os cabeçalhos de pedidos enviados pela aplicação cliente como parte do pedido HTTP para o Apigee é superior ao limite permitido no Apigee.
Este erro ocorre se o tamanho da linha de pedido enviada pela aplicação cliente
como parte do pedido HTTP para o Apigee for superior ao limite permitido no
Apigee.
Este erro ocorre se o cabeçalho Content-Encoding enviado pelo cliente
como parte da resposta HTTP contiver um formato de codificação/carga útil que não seja
suportado pelo Apigee.
Este erro ocorre se o URL do pedido do servidor de back-end, representado pela variável de fluxo target.url, contiver um caminho que começa com um ponto de interrogação (?) em vez de uma barra (/). Isto é inválido.
Este erro ocorre se o cabeçalho HTTP específico que não pode ter duplicados no Apigee aparecer mais do que uma vez com valores iguais ou diferentes como parte da resposta HTTP enviada pelo servidor de back-end para o Apigee.
Certifique-se de que a resposta HTTP enviada pelo servidor de back-end
para o Apigee contém sempre um nome de cabeçalho válido de acordo com a
RFC 7230, secção 3.2: Campos de cabeçalho.
protocol.http.EmptyPath
Código de estado HTTP:
500 Internal Server Error
Mensagem de erro:
Request path cannot be empty
Causa possível:
Este erro ocorre se o URL do pedido HTTP do servidor de back-end, representado pela variável de fluxo target.url, contiver um caminho vazio.
Certifique-se de que a resposta HTTP do servidor de back-end enviada para o
Apigee não contém carateres não ASCII nos nomes dos cabeçalhos, conforme
RFC 7230, secção 3.2.6: Field Value Components.
protocol.http.HeaderWithInvalidChar
Código de estado HTTP:
502 Bad Gateway
Mensagem de erro:
Header {header_name} contains invalid character {character}
Causa possível:
Este erro ocorre se o nome do cabeçalho enviado pelo servidor de back-end como parte da resposta HTTP contiver carateres inválidos, como igual (=), vírgula (,), ponto e vírgula (;), tabulação, CRLF e carater de nova linha.
Proxy refused to create tunnel with response status {status code}
Causa possível:
Este erro ocorre durante a criação do túnel entre o Apigee e o servidor de back-end pelo servidor proxy devido a problemas de firewall, ACL (lista de controlo de acesso), DNS, disponibilidade do servidor de back-end, etc.
Nota: o código de estado na mensagem de erro
(faultstring) indica a causa geral do problema.
protocol.http.Response306Reserved
Código de estado HTTP:
502 Bad Gateway
Mensagem de erro:
Response Status code 306 is reserved, so can't be used.
Causa possível:
Este erro ocorre se o servidor de back-end tiver respondido com o código de estado 306 ao Apigee.
O código de estado 306 foi definido numa versão anterior da especificação HTTP. De acordo com a especificação HTTP atual, este código está
reservado e não deve ser usado.
Uma vez que o código de estado 306 está reservado, certifique-se de que
o seu servidor de back-end não usa este código de estado ao enviar uma
resposta ao Apigee.
protocol.http.Response405WithoutAllowHeader
Código de estado HTTP:
502 Bad Gateway
Mensagem de erro:
Received 405 Response without Allow Header
Causa possível:
O servidor de back-end responde com o código de estado 405 Method Not Allowed sem o cabeçalho "Allow".
Este erro ocorre se a resposta HTTP do servidor de back-end ao Apigee for
204 No Content ou
205 Reset Content, mas contiver o
corpo da resposta e/ou um ou mais dos seguintes cabeçalhos:
Este erro ocorre se o tamanho da carga útil enviada pela aplicação cliente como parte do pedido HTTP para o Apigee for superior ao limite permitido no Apigee.
Este erro ocorre se o tamanho total de todos os cabeçalhos de resposta enviados pelo servidor de back-end como parte da resposta HTTP ao Apigee for superior ao limite permitido no Apigee.
Este erro ocorre se o tamanho da linha de resposta enviada pelo servidor de back-end como parte da resposta HTTP ao Apigee for superior ao limite permitido no Apigee Edge.
Este erro ocorre se o cabeçalho Content-Encoding enviado pelo servidor de back-end como parte da resposta HTTP contiver o formato de codificação/carga útil que não é suportado pelo Apigee.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Causa possível:
Este erro ocorre se o KeyAlias específico referenciado no TargetEndpoint
ou no TargetServer não for encontrado no Keystore específico.
Corrigir
Certifique-se de que o KeyAlias especificado no TargetEndpoint ou TargetServer
existe e faz parte do repositório de chaves específico.
security.util.TrustStoreWithNoCertificates
Código de estado HTTP:
500 Internal Server Error
Mensagem de erro:
TrustStore {truststore_name} has no certificates
Causa possível:
Este erro ocorre se o Truststore específico referenciado no TargetEndpoint ou no
TargetServer não contiver certificados.
Corrigir
Se quiser validar o certificado do servidor de back-end e
quiser usar o Truststore num TargetEndpoint ou num TargetServer, então
certifique-se de que o Truststore contém os certificados válidos do servidor de back-end.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-10-19 UTC."],[],[]]