If you're using WhatsApp Business API, you might have encountered a peculiar situation where you receive both "DELIVERED" and "FAILED" (or "UNDELIVERED") status updates for the same message. This can be confusing, especially when trying to ensure reliable message delivery. In this blog post, let's dive into why this occurs and what it means.

Why is this happening?
In some rare cases, WhatsApp Business API may send both a "delivered" status webhook and a "failed" status webhook for a single message. This seemingly contradictory behavior occurs due to how WhatsApp manages multi-device logins. Additionally, you may also receive multiple "DELIVERED" status webhooks for a single message if the message is successfully delivered to multiple devices.
Multi-device dynamics
When a customer uses WhatsApp on multiple devices (e.g., a smartphone, a tablet, and a desktop), the message delivery process becomes more complex. Here's a breakdown:
- Successful delivery: If the message is successfully delivered to at least one of the customer's active devices, WhatsApp Business API will trigger a "delivered" status webhook. This indicates that the message has reached at least one of the intended recipients' devices.
- Failed delivery: Simultaneously, if the message fails to be delivered to one or more of the other devices (due to connectivity issues, device limitations, or other factors), the API will also trigger a "failed" or "undelivered" status webhook.
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
Key Takeaway
It's crucial to understand that receiving a "delivered" status webhook means the message has been successfully delivered to at least one of the user's registered devices. Therefore, the message has reached the user. The "failed" status simply indicates that delivery to all devices was not universally successful. Also, be aware that multiple delivered statuses can be sent.
Practical implications
- When analyzing message delivery reports, consider that a "delivered" status confirms successful delivery to at least one device.
- The "failed" status, in conjunction with a "delivered" status, highlights potential delivery issues on specific devices, but doesn't negate the overall delivery success.
- When evaluating reports, you should consider that the message has been delivered to the end user, if the delivered status has been sent.
Conclusion
The simultaneous occurrence of "delivered" and "failed" (or multiple "delivered") status updates in the WhatsApp Business API is a result of the platform's multi-device functionality. While it might seem counterintuitive, it provides a more granular view of message delivery across a user's devices. By understanding this behavior, you can accurately interpret message delivery reports and ensure effective communication with your customers.