Skip to main content

Failure Handling and Retry Mechanism for Webhook Delivery

When an event (say ‘shipment create’) occurs, the webhook service at which it arrives will try to notify the subscribers who have subscribed to the event, and mark their status as SUCCESS.

If some event fails to reach the subscribers, the event will be marked as FAILED and its no. of attempts will be incremented by 1 each time it fails.

The failed events will keep on retrying until 48 hours or 20 attempts are reached. Once these attempts threshold is breached by any event, the event will be marked as DISABLED. Once the event is marked as Disabled it will block the subscriber and mark all the remaining events of that subscriber as RESYNC.

When the blocked subscriber is activated with the correct URL, all the RESYNC events will be processed again and will be marked as success or failure depending on the webhook response. The subscriber will be blocked again if any of its events reaches the configured threshold attempts, i.e., 20 attempts.


Types of Event Status

SUCCESS: Indicates that the event has been successfully pushed to the subscriber’s webhook and has received HTTP status ‘200’ in response.

FAILED: Indicates that the event has not been successfully pushed to the subscriber’s webhook because of an HTTP status other than ‘200’ in its response from the webhook within 10 seconds.

RESYNC: Indicates that the event will be reattempted once the blocked subscriber is unblocked even if its configured threshold limit for attempts is reached.

DISABLED: Indicates that the event has exhausted its max threshold limit for reattempts, and will not be picked again for processing


Types of Subscriber Status

ACTIVE: When a subscriber is active, it participates in the webhook processing, and all its events will get processed to the subscriber.

INACTIVE: When a subscriber is inactive, it will not participate in the webhook processing, and none of the events that belong to that subscriber will be processed.

BLOCKED: A subscriber is blocked when any event that belongs to that subscriber has exhausted its max threshold limit thereby blocking the subscriber, and marking all the following events related to that subscriber as RESYNC.


Flow Diagram

QG1