Quando as solicitações de API são feitas pela Apigee Edge, os componentes da Apigee Edge roteadores e processadores de mensagens ou os servidores de
back-end podem retornar erros aos aplicativos cliente.
Erros do processador de mensagens
O processador de mensagens é o principal componente do Apigee Edge que processa as políticas e
interage com os servidores de back-end. Ele pode retornar erros se detectar algum problema como:
Problemas de conectividade de rede, falhas no handshake do 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 inválidos, codificação, caminho, não conformidade com as especificações HTTP, excedendo
os limites de produtos etc.:
Com solicitação HTTP enviada pelos aplicativos cliente
OU
Com resposta HTTP enviada pelo servidor de back-end
E muito mais
Exemplo de erro do processador de mensagens
O Processador de mensagens sempre retorna um código de status HTTP seguido por uma mensagem de erro junto com um código de erro no formato JSON, conforme mostrado abaixo:
O aplicativo cliente recebe um código de resposta como o exemplo a seguir:
HTTP/1.1 414 Request-URI Too Long
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 do erro (também conhecido como código de falha) associado ao
erro
Catálogo de erros de tempo de execução
Neste catálogo de erros, você encontra todas as informações sobre os códigos de erro do ambiente de execução (para erros que não são de política) retornados pelo componente Processador de mensagens do Apigee Edge. Ele inclui as seguintes informações sobre cada código de erro:
Código de status HTTP
Mensagem de erro
Possíveis causas do erro
Todas as especificações HTTP associadas e/ou limites de produto
Manuais e vídeos que contêm instruções para diagnosticar a causa do erro e
soluções eficazes que podem ser aplicadas para resolver o erro por conta própria (quando disponível)
Corrija isso para corrigir o erro
As seguintes categorias de código de erro são abordadas:
Use a caixa Pesquisar abaixo para filtrar a tabela e exibir as informações acima para um código de erro específico. É possível pesquisar o código de status ou qualquer conteúdo em qualquer campo
na tabela.
searchPesquisa
Código do erro
Descrição
Correção
flow.*
flow.APITimedOut
Código de status HTTP:
504 Gateway Timeout
Mensagem de erro:
API timed out
Possível causa:
Este erro ocorre se:
O servidor de back-end não responde dentro do período de tempo limite configurado pela propriedade api.timeout para o proxy de API específico.
Uma política leva muito tempo devido a operações intensivas em termos de computação, carga alta
ou desempenho ruim.
Observação:este playbook fornece instruções para resolver o código de erro
messaging.adaptors.http.flow.GatewayTimeout. No entanto, você pode usar
o mesmo playbook para resolver o código de erro flow.APITimedOut.
A codificação especificada no cabeçalho da solicitação HTTP
Content-Encoding é válida e
aceita pelo Apigee Edge,
MAS
O formato de payload enviado pelo cliente como parte da solicitação HTTP não corresponde ao formato de codificação especificado no cabeçalho Content-Encoding.
A codificação especificada no cabeçalho de resposta HTTP do servidor de back-end/destino Content-Encoding é válida e aceita pela
Apigee Edge,
MAS
O formato de payload enviado 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
A mensagem de erro e o formato podem variar dependendo da implementação do servidor de back-end.
Possível causa:
Esse erro ocorre se o servidor de back-end responder com o código de status
504 para o Apigee Edge.
Observação: o código de erro
messaging.adaptors.http.flow.ErrorResponseCode não é retornado
como parte da mensagem de erro enviada aos aplicativos clientes. Isso acontece
porque esse código de erro é definido pelo Apigee Edge sempre que o servidor de back-end
responde com um erro e qualquer um dos códigos de status
4XX ou 5XX. Confira esse código de erro no monitoramento de APIs, nos registros de acesso do NGINX ou no banco de dados de análise.
messaging.adaptors.http.flow.GatewayTimeout
Código de status HTTP:
504 Gateway Timeout
Mensagem de erro:
Gateway Timeout
Possível causa:
Esse erro ocorrerá se o servidor de back-end não responder
ao processador de mensagens do Apigee Edge dentro do
tempo limite de E/S configurado no processador de mensagens.
Esse erro ocorre se o cabeçalho Content-Length não for transmitido pelo
aplicativo cliente como parte das solicitações HTTP POST e PUT
enviadas para o Apigee Edge.
Observação: As solicitações com esse
erro não podem ser capturadas na ferramenta Trace, já que o processador de mensagens executa
essa validação em uma fase muito inicial, muito antes de processar a solicitação e
executar qualquer política no proxy de API.
Verifique se o aplicativo cliente sempre transmite o cabeçalho
Content-Length como parte das solicitações HTTP POST e
PUT enviadas para a Apigee Edge. Exemplo:
curl -X POST https://HOSTALIAS/PATH -d '{"name": "abc"}' -H "Content-Length: 15"
Mesmo que você esteja passando um payload vazio com solicitações POST e PUT, verifique se o cabeçalho Content-Length: 0 foi transmitido. Exemplo:
curl -X POST https://HOSTALIAS/PATH -H "Content-Length: 0"
messaging.adaptors.http.flow.NoActiveTargets
Código de status HTTP:
503 Service Unavailable
Mensagem de erro:
The Service is temporarily unavailable
Possível causa:
Esse erro ocorre em um dos seguintes cenários,
se você estiver usando o
TargetServer no Apigee Edge:
A resolução incorreta de DNS do host do servidor de back-end
pelo servidor de autorização personalizado resultou em endereços IP incorretos que levam a
erros de conexão.
Erros de tempo limite de conexão devido a:
A restrição do firewall no servidor de back-end impede
que o Apigee Edge se conecte ao servidor de back-end.
Problemas de conectividade de rede entre o Apigee Edge
e o servidor de back-end.
O host especificado no TargetServer está incorreto ou tem caracteres indesejados (como um espaço).
Esse erro ocorre se o processador de mensagens do Apigee Edge não receber o
payload de solicitação do aplicativo cliente para o
tempo limite de E/S configurado no componente Processador de mensagens.
Corrigir
Verifique se o aplicativo cliente envia o payload da solicitação no
Tempo limite de E/S configurado no componente Processador de mensagens do Apigee Edge.
messaging.adaptors.http.flow.ServiceUnavailable
Código de status HTTP:
503 Service Unavailable
Mensagem de erro:
The Service is temporarily unavailable
Possível causa:
Esse erro ocorre em um dos seguintes cenários::
A resolução incorreta de DNS do host do servidor de back-end
pelo servidor de autorização personalizado resultou em endereços IP incorretos que levam
a erros de conexão.
Erros de tempo limite de conexão devido a:
A restrição do firewall no servidor de back-end impede
que o Apigee Edge se conecte ao servidor de back-end.
Problemas de conectividade de rede entre o Apigee Edge e o servidor de back-end.
O host do servidor de destino especificado no endpoint de destino está incorreto ou tem caracteres indesejados, como espaço.
Esse erro também poderá ocorrer se o servidor de back-end fechar a conexão prematuramente enquanto o processador de mensagens ainda estiver enviando o payload da solicitação ao servidor de back-end.
Esse erro ocorrerá se o Apigee Edge não puder rotear a solicitação para nenhum dos
TargetEndpoints porque:
Não há uma condição de regra de rota (<RouteRule>) que
corresponda à solicitação em um proxy
AND
Não há uma regra de rota padrão definida no ProxyEndpoint
(ou seja, <RouteRule> sem condição)
Correção
Para resolver esse erro, siga estas instruções:
Revise as regras de rota definidas no ProxyEndpoint e modifique para garantir que
haja pelo menos uma condição de regra de rota que corresponda à sua solicitação.
É uma boa prática definir uma regra de rota padrão sem condição quando você tem várias RouteRules.
Certifique-se de que a regra de rota padrão esteja definida por último na lista
de rotas condicionais porque as regras são avaliadas de cima para baixo no ProxyEndpoint.
Para saber mais sobre como definir condições <RouteRule> em um ProxyEndpoint, consulte
Destinos condicionais.
messaging.runtime.SenseRaiseFault
Código de status HTTP:
403 Forbidden
Mensagem de erro:
Sense Fault
Possível causa:
Esse erro ocorre quando uma solicitação de API é feita de um endereço IP de cliente específico
que é bloqueado como parte das regras do Apigee Sense.
Se o endereço IP do cliente não estiver bloqueado, mas você ainda
receber esse erro, entre em contato com o suporte do Apigee Edge.
protocol.http.* - Caused due to bad request
protocol.http.BadFormData
Código de status HTTP:
500 Internal Server Error
Mensagem de erro:
Bad Form Data
Possível causa:
Esse erro ocorrerá se e somente se todas as condições a seguir forem satisfeitas:
A solicitação HTTP enviada pelo cliente para o Apigee Edge
contém:
Content-Type: application/x-www-form-urlencoded,
e
Dados de formulário com o sinal de porcentagem (%) ou o sinal de porcentagem (%) seguido de caracteres hexadecimais inválidos que não são permitidos de acordo com
Forms: seção 17.13.4.1.
O proxy de API no Apigee Edge lê os parâmetros de formulário específicos que contêm os caracteres não permitidos usando a política ExtractVariables ou AttributionMessage no fluxo de solicitação.
Esse erro ocorre quando um cabeçalho HTTP específico que não pode ter cópias
no Apigee Edge aparece mais de uma vez com valores iguais ou diferentes como parte da
solicitação HTTP enviada pelo aplicativo cliente para o Apigee Edge.
Verifique se a solicitação HTTP enviada pelo aplicativo cliente
para o Apigee Edge sempre contém um nome de cabeçalho válido de acordo com o
RFC 7230, seção 3.2: campos de cabeçalho.
protocol.http.HeaderNameWithNonAsciiChar
Código de status HTTP:
400 Bad Request
Mensagem de erro:
Header {header_name} contains non ascii character {character}
Possível causa:
Esse erro ocorrerá se o nome do cabeçalho enviado como parte da solicitação HTTP
pelo aplicativo cliente para o Apigee Edge contiver caracteres não ASCII.
Header {header_name} contains invalid character {character}
Possível causa:
Esse erro ocorre quando o nome do cabeçalho enviado como parte da solicitação HTTP
pelo aplicativo cliente para o Apigee Edge contém caracteres inválidos, como
igual (=), vírgula (,), ponto e vírgula (;), tab, CRLF e um caractere de nova linha.
Esse erro ocorre se o caminho no URL de solicitação HTTP enviado pelo aplicativo cliente
para o Apigee Edge contiver caracteres que não são permitidos de acordo com a especificação
RFC 3986, seção 3.3: caminho.
Verifique se o caminho no URL de solicitação HTTP enviado pelo aplicativo
cliente para a
Apigee Edge não contém nenhum caractere não permitido como
de acordo com a RFC 3986, seção 3.3: caminho.
protocol.http.TooBigBody
Código de status HTTP:
413 Request Entity Too Large
Mensagem de erro:
Body buffer overflow
Possível causa:
Esse erro ocorre se o tamanho do payload enviado pelo aplicativo cliente como parte da
solicitação HTTP para o Apigee Edge for maior que o limite permitido no Apigee Edge.
O tamanho total de todos os cabeçalhos de solicitação enviados pelo aplicativo
cliente como parte da solicitação HTTP para o Apigee Edge é maior do que o limite permitido
no Apigee Edge.
Esse erro ocorre quando o tamanho da linha de solicitação enviada pelo aplicativo cliente
como parte da solicitação HTTP para o Apigee Edge é maior que o limite permitido no
Apigee Edge.
Esse erro ocorre se o cabeçalho Content-Encoding enviado pelo cliente
como parte da resposta HTTP tiver um formato de codificação/payload que não é
compatível com o Apigee Edge.
Este erro ocorrerá se o URL de solicitação 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 um encaminhamento barra (/), que é inválida.
Esse erro ocorrerá se o cabeçalho HTTP específico que não tem permissão para ter cópias
no Apigee Edge aparecer mais de uma vez com valores iguais ou diferentes como parte da
resposta HTTP enviada pelo servidor de back-end para o Apigee Edge.
Verifique se a resposta HTTP enviada pelo servidor de back-end
para o Apigee Edge sempre contém um nome de cabeçalho válido de acordo com o
RFC 7230, seção 3.2: campos de cabeçalho.
protocol.http.EmptyPath
Código de status HTTP:
500 Internal Server Error
Mensagem de erro:
Request path cannot be empty
Possível causa:
Este erro ocorre se o URL de solicitação HTTP do servidor de back-end, representado pela variável de fluxo target.url, contiver um caminho vazio.
Header {header_name} contains non ascii character {character}
Possível causa:
Esse erro ocorrerá se o nome do cabeçalho enviado pelo servidor de back-end como parte da
resposta HTTP para o Apigee Edge
contiver caracteres não ASCII.
Header {header_name} contains invalid character {character}
Possível causa:
Esse erro ocorre quando o nome do cabeçalho enviado pelo servidor de back-end como parte da resposta HTTP contém caracteres inválidos, como igual (=), vírgula (,), ponto e vírgula (;), tab, CRLF e Nova linha.
Proxy refused to create tunnel with response status {status code}
Possível causa:
Esse erro ocorre durante a criação do túnel entre o Apigee Edge e o
servidor de back-end pelo servidor proxy devido a firewall, ACL (lista de controle de acesso), problemas de
DNS, disponibilidade de disponibilidade do servidor de back-end etc.
Observação: o código de status na mensagem de erro
(faultstring) fornece a causa geral do problema.
Response Status code 306 is reserved, so can't be used.
Possível causa:
Esse erro ocorre se o servidor de back-end responder com o código de status 306 para o Apigee Edge.
O código de status 306 foi definido em uma versão anterior da
especificação HTTP. De acordo com a especificação HTTP atual, esse código é
reservado e não pode ser usado.
Esse erro ocorre se a resposta HTTP do servidor de back-end para o Apigee Edge for
204 No Content ou
205 Reset Content, mas contiver o
corpo da resposta e/ou um ou mais dos seguintes cabeçalhos:
Esse erro ocorre se o tamanho do payload enviado pelo aplicativo cliente como parte da
solicitação HTTP para o Apigee Edge for maior que o limite permitido no Apigee Edge.
Esse erro ocorrerá se o tamanho total de todos os cabeçalhos de resposta enviados pelo
servidor de back-end como parte da resposta HTTP para o Apigee Edge for maior que o
limite permitido no Apigee Edge.
Esse erro ocorre se o tamanho da linha de resposta enviada pelo servidor de back-end como
parte da resposta HTTP para o Apigee Edge for maior que o limite permitido no Apigee
Edge.
Esse 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/payload
que não é
compatível com o Apigee Edge.
KeyAlias {KeyAlias_name} is not found in
Keystore {Keystore_Name}
Possível causa:
Esse erro ocorre se o KeyAlias específico referenciado no TargetEndpoint
ou TargetServer não for encontrado no Keystore específico.
Correção
Verifique se o KeyAlias especificado em TargetEndpoint ou TargetServer faz parte do Keystore específico.
security.util.TrustStoreWithNoCertificates
Código de status HTTP:
500 Internal Server Error
Mensagem de erro:
TrustStore {truststore_name} has no certificates
Possível causa:
Esse erro ocorre se o Truststore específico referenciado no TargetEndpoint ou
TargetServer não contiver nenhum certificado.
Correção
Se você quiser validar o certificado do servidor de back-end e
quiser usar o Truststore em um TargetEndpoint ou TargetServer, verifique se 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"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-11-08 UTC."],[],[]]