Why does WhatsApp show my messages as both delivered and failed?

TL;DR

If you use the WhatsApp Business API (including Cloud API), you can occasionally receive both DELIVERED and FAILED/UNDELIVERED webhooks for the same message. This usually happens in multi-device scenarios: the message reaches at least one device (so WhatsApp emits delivered), but fails on another device (so WhatsApp emits failed/undelivered).

Why does WhatsApp show a message as both DELIVERED and FAILED?

In rare cases, WhatsApp can send a DELIVERED status webhook and also a FAILED/UNDELIVERED webhook for the same message ID. This isn’t necessarily a contradiction—WhatsApp’s delivery reporting can reflect delivery outcomes across a user’s multiple devices, which means one device can succeed while another fails.

The short explanation

  • DELIVERED can mean the message reached at least one of the user’s active devices.

  • FAILED/UNDELIVERED can mean delivery to another device did not succeed.

Why you may also see multiple DELIVERED webhooks

If the same message is successfully delivered to multiple devices (phone + desktop, etc.), you may receive multiple DELIVERED webhooks for that single message.

This behavior is documented within the Meta for Developers documentation, providing clarification on how webhooks function, especially concerning message status updates. You can find more details here: WhatsApp Cloud API Webhooks

How multi-device logins create “delivered + failed” for one message

When a customer is logged into WhatsApp on multiple devices (phone, tablet, desktop), WhatsApp’s delivery process can produce mixed outcomes. One device may be reachable and receive the message, while another device might be offline, constrained, or otherwise unreachable—resulting in both success and failure signals for the same message.

Delivered to at least one device

If WhatsApp successfully delivers the message to at least one active device, you can receive a delivered status webhook.

Failed on another device

If delivery fails to one or more other devices, WhatsApp can also emit a failed/undelivered status webhook—without negating the fact that another device received it.

Key takeaway: is the message delivered to the user or not?

If you have received a DELIVERED webhook, that confirms the message was delivered to at least one device and therefore reached the user. The accompanying FAILED/UNDELIVERED webhook indicates delivery wasn’t universally successful across all devices, but it doesn’t automatically invalidate the delivered outcome.

Practical implications for reporting and ops

When you see both statuses, you should treat DELIVERED as confirmation of user reach, and treat FAILED/UNDELIVERED as device-level friction that may matter for debugging—but not necessarily for end-user delivery success. Also account for webhook timing and retries when analyzing logs and dashboards.

How to interpret delivery reports

  • If DELIVERED exists, consider the message delivered to the end user (at least one device).

  • Use timestamps to understand the real sequence, not webhook arrival order.

What “failed” means when “delivered” exists

  • It can highlight delivery issues on specific devices (connectivity, device limitations, etc.).

  • It does not necessarily mean the user didn’t get the message, if delivered was already sent.

Conclusion

Seeing both DELIVERED and FAILED/UNDELIVERED for the same WhatsApp Business API message can be confusing, but it’s typically a byproduct of multi-device delivery dynamics. Interpreting it correctly means treating DELIVERED as successful user reach, using timestamps for sequencing, and using FAILED/UNDELIVERED as a diagnostic signal rather than a blanket failure verdict.

Join our 2K+ readers

Get one actionable email a week on managing your notification infrastructure – no spam.

Fyno

Fyno is a modern infrastructure for product and engineering teams to build and manage their notification or communications service with minimum effort.