When sending fails
A checklist to find out why messages are not going out.
Work from the outside in. Stop at the first thing that is wrong.
One customer only
- Credit. Does the bind or account have balance?
- Bind. Is the bind enabled? Is it connected in Live status?
- IP. Is the customer connecting from an IP on their list? Connections from other IPs are refused at the firewall and never reach SMPP.
- Country. Is the destination country on the bind?
- Speed. Are they getting
ESME_RTHROTTLED? They send faster than their limit. - Sender ID. Is it allowed for that country?
- HTTP API. Is the number a Malawi number? Other countries get
destination_not_allowed.
Everyone
- Upstream bind. Is it connected? See Upstream bind.
- Upstream credit. Is the upstream account balance above zero?
- Services. Are all containers running and healthy? Check with
docker compose psin the yanu-infra folder on the server. - Disk. Is the disk full? A full disk stops the database and the queues.
- Database. Can the services reach PostgreSQL?
- Recent deploy. Did something change in the last hour? Roll back by reverting the commit on
main.
Messages accepted but not delivered
- Look at receipts: many
UNDELIVorEXPIREDfor one network point to a network problem. - Compare with a test SMS to your own phone.
- Report the pattern, times and sample message ids to the upstream provider.
Tell customers
If sending is down for everyone, tell customers early, by email from [email protected] and by phone for big accounts. Say what is affected, and when you will give the next update.