Esta é a documentação da Apigee e da Apigee híbrida.
    Confira a documentação da Apigee Edge.
  
  A política RaiseFault permite que os desenvolvedores de API iniciem um fluxo de erro, definam variáveis de erro
  em uma mensagem de corpo de resposta e definam códigos de status de resposta apropriados. Também é possível usar a política RaiseFault
  para definir variáveis de fluxo pertencentes à falha, como fault.name, fault.type
  e fault.category. Como essas variáveis são visíveis em dados de análise e registros de acesso de roteador
  usados para depuração, é importante identificar com precisão a falha.
Você pode usar a política RaiseFault para tratar condições específicas como erros, mesmo que um erro real
  não tenha ocorrido em outra política ou no servidor de back-end do proxy de API. Por exemplo, se quiser
  que o proxy envie uma mensagem de erro personalizada para o app cliente sempre que o corpo da
  resposta de back-end contiver a string unavailable, invoque a política RaiseFault, conforme
  mostrado em o snippet de código abaixo:
<!-- /antipatterns/examples/raise-fault-conditions-1.xml --> <TargetEndpoint name="default"> ... <Response> <Step> <Name>RF-Service-Unavailable</Name> <Condition>(message.content Like "*unavailable*")</Condition> </Step> </Response> ...
O nome da política RaiseFault está visível como fault.name no 
  Monitoramento de APIs e como x_apigee_fault_policy nos registros de acesso do Google Analytics e do roteador.
  Isso ajuda a diagnosticar a causa do erro com facilidade.
Antipadrão
Como usar a política RaiseFault em FaultRules após outra política já ter gerado um erro
Considere o exemplo abaixo, em que uma política do OAuthV2 no fluxo do proxy de API falhou com um erro
  InvalidAccessToken.  Em caso de falha, a Apigee definirá fault.name como InvalidAccessToken, entrará no
  fluxo de erros e executará quaisquer FaultRules definidas. Na FaultRule, há uma política RaiseFault, chamada
  RaiseFault, que envia uma resposta de erro personalizada sempre que um erro InvalidAccessToken
  ocorre.  No entanto, o uso da política RaiseFault em uma FaultRule significa que a variável fault.name
  é substituída e mascara a causa verdadeira da falha.
<!-- /antipatterns/examples/raise-fault-conditions-2.xml --> <FaultRules> <FaultRule name="generic_raisefault"> <Step> <Name>RaiseFault</Name> <Condition>(fault.name equals "invalid_access_token") or (fault.name equals "InvalidAccessToken")</Condition> </Step> </FaultRule> </FaultRules>
Como usar a política RaiseFault em uma FaultRule em todas as condições
  No exemplo abaixo, uma política RaiseFault chamada RaiseFault será executada se fault.name
  não for RaiseFault:
<!-- /antipatterns/examples/raise-fault-conditions-3.xml --> <FaultRules> <FaultRule name="fault_rule"> .... <Step> <Name>RaiseFault</Name> <Condition>!(fault.name equals "RaiseFault")</Condition> </Step> </FaultRule> </FaultRules>
  Como no primeiro cenário, as variáveis de falha de chave fault.name,
  fault.code e fault.policy são substituídas pelo nome da política RaiseFault. Esse comportamento torna
  quase impossível determinar qual política realmente causou a falha sem acessar um arquivo de
  rastreamento que mostra a falha ou reproduza o problema.
Como usar a política RaiseFault para retornar uma resposta HTTP 2xx fora do fluxo de erro.
  No exemplo abaixo, uma política RaiseFault chamada HandleOptionsRequest é executada quando
  o verbo da solicitação é OPTIONS:
<!-- /antipatterns/examples/raise-fault-conditions-4.xml --> <PreFlow name="PreFlow"> <Request> … <Step> <Name>HandleOptionsRequest</Name> <Condition>(request.verb Equals "OPTIONS")</Condition> </Step> … </PreFlow>
A intenção é retornar a resposta ao cliente da API imediatamente, sem processar outras políticas. No entanto, isso resultará em dados de análise incorretos, porque as variáveis de falha incluirão o nome da política RaiseFault, o que dificulta a depuração do proxy. A maneira correta de implementar o comportamento desejado é usar fluxos com condições especiais, conforme descrito em Como adicionar compatibilidade com CORS.
Impacto
O uso da política RaiseFault, conforme descrito acima, resulta na substituição de variáveis de falha importantes pelo
  nome da política RaiseFault, em vez do nome da política com falha.  Nos registros de acesso do Google Analytics e do NGINX,
  as variáveis  x_apigee_fault_code e x_apigee_fault_policy  
  são substituídas.    No monitoramento da API, Fault Code
  e Fault Policy  são substituídos. Esse comportamento dificulta a solução de problemas e
  determina qual política é a verdadeira causa da falha.
Na captura de tela abaixo, em Monitoramento de APIs,
  é possível ver que a política de falha e a política de falha foram substituídas por valores RaiseFault
  genéricos, o que impossibilita determinar a causa principal do falha dos registros:
Prática recomendada
Quando uma política da Apigee gerar uma falha e você quiser personalizar a mensagem de resposta de erro, use as políticas AssignMessage ou JavaScript em vez da política RaiseFault.
A política RaiseFault precisa ser usada em um fluxo sem erro. Ou seja, só use RaiseFault para tratar uma condição específica como erro, mesmo que um erro real não tenha ocorrido em uma política ou no servidor de back-end do proxy de API. Por exemplo, você pode usar a política RaiseFault para sinalizar que os parâmetros de entrada obrigatórios estão ausentes ou têm sintaxe incorreta.
Você também pode usar RaisFault em uma regra de falha se quiser detectar um erro durante o processamento de uma falha. Por exemplo, o próprio gerenciador de falhas pode causar um erro que você quer sinalizar usando RaiseFault.
Leitura adicional
- Como lidar com falhas
 - Política RaiseFault
 - Discussão da comunidade sobre padrões de tratamento de falhas