”Sent” but never shows delivered
Meta does not guarantee a delivered event for every send. A delivered tick is implied when a read arrives, and a send whose recipient never receives it can sit at sent with no failed event at all: Meta retries delivery inside a TTL and drops the message when it expires, without promising a failed webhook. What you should do: a send that stays at one tick never reached the phone. Check the number, the recipient’s WhatsApp registration, and whether the 24 hour window or a template was required. The ops inbox keeps showing the true state rather than guessing.Status webhook never arrives
Meta retries webhook deliveries to endpoints that answer non-200, backing off with decreasing frequency for up to 7 days. Kylo’s webhook route answers 200 fast and persists the event afterward, so redeliveries on our side are rare. If statuses are missing across every message, the subscription itself is wrong: check the WABA’s webhook subscription in Meta’s app dashboard, not Kylo.Duplicate deliveries
Meta retries and fans out to all subscribed apps, so duplicate webhook posts are expected behavior, not a fault. Kylo dedupes inbound messages on Meta’s message id (wamid) and makes receipts idempotent, so a redelivery can never double-answer a contact or double-charge a send.
