message. Le statut est la partie lisible par la
machine.
Le tableau des retries
Pourquoi un 500 est sûr à réessayer
500 Cannot send message signifie que la passerelle a accepté votre requête et n’a pas pu la mettre
en file d’attente. Tout débit est inversé.
C’est une propriété délibérée de l’ingress, pas un hasard : le crédit est prélevé avant la mise en
file d’attente et restitué lorsque celle-ci échoue. Un retry coûte donc un message, pas deux. C’est
exactement la garantie qui rend un retry automatique défendable ici, et pas sur un 402.
Construisez pour l’accusé, pas pour la réponse
L’erreur d’intégration la plus fréquente consiste à traiter un200 comme une livraison.
La réponse de soumission est envoyée avant l’exécution du routage, donc l’acceptation et la
livraison sont des affirmations sans lien entre elles. Un message peut être accepté puis refusé
pour un expéditeur non approuvé, abandonné faute de route ou rejeté par l’opérateur, et rien de tout
cela ne peut apparaître sur l’appel initial.
1
Stockez le messageId
C’est la seule chose qui corrèle votre enregistrement avec tout ce qui suit.
2
Traitez l'envoi comme "soumis", pas "envoyé"
Un état distinct dans votre propre modèle, pour que la différence reste visible.
3
Ne passez à un état final que sur un accusé de niveau 2
ACCEPTD et BUFFRED arrivent en niveau 1 et un autre accusé suit.4
Fixez votre propre horloge d'expiration
Un message qui ne reçoit jamais d’accusé final doit expirer dans votre système aussi, sinon il
reste “soumis” pour toujours.
Erreurs que vous rencontrerez en production, pas en test
403 — not an approved sender ID
403 — not an approved sender ID
Votre compte a l’approbation de sender ID activée. Le
from que vous avez utilisé n’a pas été
approuvé, ou vous l’avez omis et le nom de votre login n’est pas non plus approuvé.Non retryable, et non corrigeable dans le code. Il faut une approbation de votre fournisseur.403 — content does not match any approved template
403 — content does not match any approved template
Votre compte n’envoie que des libellés approuvés. Un message qui fonctionne en staging et échoue en
production est habituellement dû à cela.Les espaces sont normalisés avant le matching, donc les espaces et sauts de ligne
supplémentaires n’en sont pas la cause. Un mot changé, un point ajouté ou une variable placée
différemment le sont.
402 avec de l'argent encore sur le compte
402 avec de l'argent encore sur le compte
Le crédit est réservé par blocs, pas par message, à peu près l’équivalent de vingt messages à la
fois, et les recharges sont asynchrones. Un message qui arrive pendant que la réservation suivante
est en vol est refusé même s’il reste du crédit.Ce cas est transitoire : réessayez. Un
402 qui persiste avec un solde sain, lui, ne l’est
pas, et mérite d’être remonté.400 — Unknown argument: custom-tlvs
400 — Unknown argument: custom-tlvs
Tous les autres champs traitent
_ et - comme le même caractère. custom_tlvs est la seule
exception et conserve son underscore.Voir aussi
Chaque statut
Le catalogue complet avec ce qui provoque chacun.
Accusés de livraison
La moitié de l’histoire que la réponse ne peut pas vous raconter.