Skip to content

How to Read Delivery Status and Fix Failed Messages (Pro)

A message Twilio accepted can still fail on its way to the phone. The Messages screen shows which, and why.

Go to Purchase via WhatsApp → Messages, set the first filter to Failed or undelivered and click Filter.

The status, direction and type filters on the Messages screen

The Messages screen filtered to failed messages

The dashboard’s Messages Needing Attention panel lists the five newest failures too.

Under each failed message is a plain explanation and an Error link to Twilio’s page for that code. A test sent on the demo to a phone outside the sandbox read:

You are using the Twilio sandbox and this customer has not joined it yet.
They must send the join code first.

Twilio keeps its own log too, under Monitor → Logs → Messaging in the Twilio Console. It lists every message your store sent, with the same statuses. Phone numbers are hidden in this screenshot.

Twilio’s Programmable Messaging Logs listing the store’s WhatsApp messages as Delivered

What it says What to do
Outside the 24 hour window, or a template is needed Add a Content Template SID to that notification
The customer has not joined the sandbox Ask them to send the join code, or register your own number
Not a valid WhatsApp number Correct the billing phone on the order or account
The customer opted out or blocked you Nothing. They replied STOP or blocked the number
Exceeded the 50 daily messages limit (63038) A Twilio trial limit. Wait a day, or upgrade the account
Authentication or account errors Check the Account SID and Auth Token, and the account’s credit

A failed order update also leaves an order note, “WhatsApp update could not be sent”, so it is visible on the order itself.

Delivery Rate is the share of sent messages that were delivered or read. The Messages chart draws failures in red next to the messages sent.

The Orders and Messages charts on the dashboard

On a local site the plugin cannot receive delivery reports, so messages stay Queued and these figures stay empty. That is not a failure.