Skip to main content

Delivery requirements

Your endpoint must:
  • Return a 2xx status code (200–299) within 20 seconds.
  • Be publicly accessible over HTTPS.
Any non-2xx response, timeout, or connection failure counts as a failed delivery.

Retry schedule

When a delivery fails, Allo retries automatically with exponential backoff: After 8 attempts (~27.5 hours), the message is marked as Failed.

Circuit breaker

Allo automatically disables endpoints that fail persistently. The process works as follows:
  1. Multiple deliveries must fail within a 24-hour window, with at least 12 hours between the first and last failure. A brief outage does not trigger the circuit breaker.
  2. Once that condition is met, a 5-day timer starts.
  3. If all delivery attempts continue to fail for 5 consecutive days, the endpoint is automatically disabled.
To recover:
  1. Fix the issue with your endpoint.
  2. Go to Settings > Webhooks and re-enable the webhook.
  3. Use the Recover option in the webhook settings to replay missed events.

Inspecting deliveries

You can inspect delivery attempts, view payloads, and check response details from Settings > Webhooks. Select a webhook to see its delivery history, filter by status, and drill into individual deliveries.

Retry and recovery

From the webhook settings UI you can:
  • Retry a specific failed delivery immediately.
  • Recover missed events by replaying all deliveries since a given date. Use this after fixing a broken endpoint or recovering from downtime.

Delivery guarantees

Allo uses at-least-once delivery. Events may be delivered more than once. Implement idempotency in your handler using the webhook-id header. See Best practices.