WhaBuzzdocs
Reference

Reliability

What WhaBuzz promises about delivery and speed, what each promise means for your code, how we prove it, and the live figures.

#The promises

PromiseWhat it means for your codeHow we prove it
Meta's webhook gets our 200 only after the event is storedIf Meta saw a 200, the event exists in your log. Nothing Meta delivered to us is acknowledged and then lost.A staging test kills the event store mid-accept and checks that no 200 is sent for an unstored event.
Retry ladder: +30 s, 1 m, 2 m, 5 m, 10 m, 20 m, 40 m, 1 h, then hourly up to 24 h. After 5 straight failures the endpoint's circuit opens. After 24 h a delivery is marked dead and we email you.A slow or broken endpoint recovers by itself. Return any non-2xx and we try again; you never need your own retry queue for our deliveries.A test sink in a failing mode receives attempt 4 at about 3.5 minutes. A sink that always answers 500 reaches dead at 24 h and the email arrives.
Replay any event for your whole retention window (30, 90, 180 or 365 days)A bug on your side is recoverable. Replay after the fix and the event arrives again with the same id, seq and dedupe_key, plus a new delivery attempt id.A test replays a 31-day-old event on a 90-day tenant and compares the identifiers.
Delivery SLO: 99.9% of events reach a healthy endpoint within 60 s. Inbound own time p99 under 30 ms.Events arrive quickly and our own processing adds little to your latency. "Own time" excludes time spent waiting on Meta or on your endpoint.The figures below, measured from production metrics, plus your own numbers in the console.
At-least-once delivery, never silently dropped. Every envelope has dedupe_key and seq.You may see an event twice, never zero times. De-duplicate on dedupe_key; spot a gap by watching seq.A CI replay checks that every field Meta sent is present in raw. Gap detection is documented with code.
Meta's errors, verbatimWhen Meta rejects a request you see Meta's own error body under error.meta, unchanged, next to ours.CI sends known-bad requests through the sandbox and compares Meta's body byte for byte with ours.

See also: Webhooks for the retry and replay mechanics, Errors for the error.meta shape, and Retention for the replay window.

#Live figures

#Look up a request

Every response carries a request_id. Look it up with GET /v1/requests/{request_id} or in the console's Logs page. See Errors.

This page as Markdown: /reliability.md. All docs in one file: /llms-full.txt.