Skip to main content

What counts as success

A delivery is considered successful when your endpoint returns any 2xx HTTP status code. Any other response (or a timeout) triggers a retry.

Retry schedule

Failed deliveries are retried with exponential backoff, capped at 240 seconds. The delay formula is:
After 10 failed attempts, the delivery is marked as failed and no further retries are made.
Retries are backed by Durable Object alarms, which means they survive infrastructure restarts and are guaranteed to execute.

Request timeout

Each delivery attempt has a 30-second timeout. If your server doesn’t respond within 30 seconds, the attempt is treated as a failure and the next retry is scheduled.
Return a 200 response immediately and process the event asynchronously. This prevents timeouts and ensures reliable delivery.

Delivery statuses

Viewing delivery logs

In the Bluvo Portal, navigate to Settings > Webhooks, select an endpoint, and click Deliveries to view the log. Each delivery record includes:

Tips

Immediately return 200 OK and enqueue the event for asynchronous processing. This prevents timeouts and keeps retry counts low.
Events may arrive out of order, especially when retries are involved. Use the timestamp field in the payload to determine event ordering if needed.
The same event may be delivered more than once. Track processed eventId values to avoid duplicate handling.
Regularly check the delivery logs in the Portal. If an endpoint consistently fails, verify the URL is reachable and returning 2xx responses.