maxAttempts. Esse é o único valor que realmente significa roteamento.
O log nomeia a causa
Cada uma destas é WARN ou ERROR e não precisa de nenhuma flag de debug ligada.Duas coisas para descartar antes de editar qualquer regra
Algum fornecedor está bound?
Algum fornecedor está bound?
Um catch-all perfeito apontando para um fornecedor desconectado não entrega nada e parece exatamente
um bug de roteamento.Responde em palavras: “N vendor(s) configured, none bound — nothing can be sent yet.”
Um filtro está ausente ou desabilitado?
Um filtro está ausente ou desabilitado?
Uma regra referenciando um é pulada inteiramente em vez de carregada com menos condições. Porque
descartar condições silenciosamente ampliaria a regra.Procure por
Skipping … filter '…' is missing or disabled. Se isso esvaziou a tabela default, a
configuração de roteamento inteira é recusada e você está no caso ERROR acima.Por que uma regra não casou
Seis causas, e as duas últimas respondem por a maioria das surpresas:- Regras são avaliadas de cima para baixo; uma tabela NORMAL para no primeiro match.
- O fallback tem que estar no fim. Um catch-all acima de outras regras torna tudo abaixo inalcançável. A página de routing do painel avisa nos dois casos.
- Nomes de atributos precisam bater com os da referência de routing.
- Comparações de string são case-sensitive a menos que
equalsIgnoreCaseseja usado. startsWithcompara texto literal. Uma expressão regular escrita nele nunca pode ser verdadeira. Usematches. O painel avisa; um arquivo editado à mão não.- Um campo não definido não casa com nenhum operador positivo, exceto
isNull.product:equals:premiumnão casa com uma mensagem sem produto. Masproduct:!equals:premiumcasa.
Rastreando uma mensagem
DefinaoutSms.routing.trace para um único serial de mensagem ou id de conta. Toda regra contra a
qual essa mensagem é testada então loga qual condição falhou e o que a mensagem de fato continha:
Os dois números de fila
Relacionados
Como o roteamento funciona
Tabelas, regras e a ordem em que resolvem.
Rejeições do fornecedor
Quando o fornecedor está bound e recusando todo submit.