Messages that fail with an error code
A failed status always carries a reason. The first question is which layer wrote it — the platform or the provider.
Read this article →Every call returns success. Work through this in order — the first four checks do not involve the carrier at all.
Each step either finds the cause or rules out a whole layer, so a wrong guess early costs more than it saves.
suppressed means the platform never tried to send it, and no provider investigation will help.
Transactional traffic must declare INFORMATIONAL or TRANSACTIONAL, or a recipient who opted out will have it suppressed.
If you never configured a callback URL, you will never learn that a message failed after submission.
If you retried after a timeout, there may be two messages, and the second one may be the one the recipient sees.
Segments, encoding and errorCode on the failed message tell you whether this is an encoding, routing or carrier-side problem.
The send endpoint accepts asynchronously. Returning success means the platform submitted the message to the provider, and at that moment it may already have gone out.
So a client-side timeout is not evidence of failure. There is no idempotency key: resending produces a genuinely second message, sent and billed. If you do not have a messageId, look the send up in the console by time window and recipient number instead of resending it.
delivered is the provider's report that the handset received the message, which is as far as any platform can see. It does not prove a human read it. Before treating it as a platform fault, confirm the recipient has not filtered the sending number, and that the message did not land in a filtered or spam view.
A failed status always carries a reason. The first question is which layer wrote it — the platform or the provider.
Read this article →Almost always this is a client-side timeout followed by a resend. Here is how to confirm it, and how to stop it happening.
Read this article →Telling an account-level failure apart from a bad route, and what failover can and cannot absorb for you.
Read this article →