# Reliability and Sync

> How Avox receives every WhatsApp event, never stores the same message twice, keeps order, retries failures, and shows you what happened.

Source: https://docs.theavoxai.com/reliability

Every message, delivery receipt, read receipt, and account update for your WhatsApp number reaches
Avox as an event from Meta. This page explains what Avox does with each one, so you know what to expect
- and where to look when you want to check. You don't need to set anything up.

## Every event is received and kept

When Meta sends an event, Avox:

1. **Checks it really came from Meta.** Every delivery carries Meta's signature, and Avox checks it
   before reading anything. Anything unsigned or altered is refused.
2. **Stores it straight away**, then confirms receipt to Meta right away. A burst of activity - a busy
   morning, a big campaign - never makes Meta give up on delivering to Avox.
3. **Processes it** a moment later: adding the message to your [Inbox](https://docs.theavoxai.com/inbox), updating a delivery
   status, recording a call, and so on.

If Avox can't store an event, it doesn't confirm receipt, so Meta sends it again.

## No duplicates

Meta sometimes sends the same event more than once - that's normal for WhatsApp. Avox recognises
repeats and handles each one once:

- The same event arriving twice is stored once.
- A message is added to a conversation once, even when Meta delivers it again inside another event.
- An [automation](https://docs.theavoxai.com/automation) never replies twice to the same customer message.
- A **No-reply follow-up** automation checks in at most once per unanswered message, and only while
  nobody has replied since - not your team in the Inbox or through the API, not the WhatsApp Business
  app on your phone, and not another automation. A new message from the customer starts its own wait.

You won't see a message twice in your Inbox or counted twice in [Analytics](https://docs.theavoxai.com/analytics).

## Order is kept

Events for your account are processed in the order Avox received them, so a delivery status never
overtakes the message it belongs to, and a conversation reads in the order it happened.

## Failures are retried

If processing an event fails - for example during a brief outage - Avox puts it back in line and tries
again automatically, up to 5 times. You can follow every event in [Logs](https://docs.theavoxai.com/logs):

- **Attempts** shows how many tries an event took.
- An event that still can't be processed after 5 tries is marked `failed`, with the reason in its
  **Error** column.

A failed event is still kept, with Meta's full payload, so nothing is lost. Contact
[Support](https://docs.theavoxai.com/support) with the event type and time, and Avox can look into it and process it again.

## Message forwarding keeps trying

If you turn on [Message forwarding](https://docs.theavoxai.com/connections/webhook-override) for a connection, Avox sends each
incoming customer message to your own endpoint. When your endpoint doesn't accept a delivery, Avox
retries it for many hours before giving up on it. If your endpoint keeps failing delivery after
delivery, Avox pauses forwarding for that connection and emails every Admin a **Message forwarding
paused** notice.

Nothing is lost either way: every message is still in your [Inbox](https://docs.theavoxai.com/inbox), and once your endpoint is
working again you turn forwarding back on and resend anything you missed from the connection's delivery
log.

## Your connection's heartbeat

Every event Meta sends for your number also refreshes that connection's **Last active** time. That's
the heartbeat you see on [Health](https://docs.theavoxai.com/health) and on each connection's card - a quick way to confirm
events are flowing.

## What you can check yourself

| Question | Where to look |
| --- | --- |
| Are events arriving for my number? | The heartbeat and **Live heartbeat** on [Health](https://docs.theavoxai.com/health). |
| Did a specific event arrive, and what did it contain? | [Logs](https://docs.theavoxai.com/logs) - filter by event type and open it. |
| Did anything fail? | [Logs](https://docs.theavoxai.com/logs) with the `failed` filter, and the Insights rail. |
| Can my number send right now? | **Check health now** on [Health](https://docs.theavoxai.com/health). |
| Is Avox itself running normally? | The [Status page](https://docs.theavoxai.com/status-page). |

## Related pages

- [Meta webhooks](https://docs.theavoxai.com/whatsapp/webhooks) - every event type Avox handles.
- [Coexistence sync](https://docs.theavoxai.com/connections/coexistence) - history, contacts, and phone-app messages.
- [Idempotency](https://docs.theavoxai.com/avox-api/idempotency) - retrying API sends without sending twice.
- [Status page](https://docs.theavoxai.com/status-page) - live status of every part of Avox, and any incident the team is working on.
- Still stuck? Open a ticket in [Support](https://docs.theavoxai.com/support) or email hello@theavoxai.com.
