How each response is handled
Replaying a request the endpoint has already rejected as invalid is not expected to succeed, which is why other
4xx responses are not retried. Respond promptly: an attempt that gets no response in time counts as a network failure.
Backoff and the attempt limit
The wait after each failed attempt doubles, from about 30 seconds to a ceiling of one hour:
A
Retry-After header on a retryable response, in seconds or as an HTTP date, replaces the computed wait and is honoured up to the same one-hour ceiling.
The attempt limit is per deployment. Read capabilities.webhooks.deliveryPolicy.maxAttempts from GET /v2/partners/config rather than assuming a number:
Delivery statuses
A retry is the same delivery. It keeps the
x-stableyard-delivery ID, the x-stableyard-event-id and the body; only x-stableyard-timestamp and the signature are new. If one endpoint succeeds while another subscribed to the same event fails, only the failing endpoint is retried.
Endpoint restrictions
Endpoints must be HTTPS with no embedded credentials. Redirects are not followed, and destinations that resolve to local, private or metadata addresses are rejected outright, so a tunnel to a laptop will not receive deliveries in a deployed environment. These rules are checked when you create the endpoint and again before every attempt.Inspect deliveries
limit is up to 100, default 50; pass nextCursor as cursor for the next page. Each delivery also carries the requestBody that was sent, the start of your endpoint’s responseBody, nextAttemptAt while a retry is scheduled, and deliveredAt once delivered.
Requeue a delivery
Once the endpoint is fixed, requeue a failed or abandoned delivery from the Partner Dashboard, or from your backend:
Requeueing only helps if someone is watching, so alert on abandonment rather than on the first failure.
Endpoint changes and pending deliveries
Related
Webhooks overview
Endpoints, delivery guarantees and headers.
Verifying signatures
Retries are re-signed; verify each one the same way.
Event catalog
Every partner event and what it means.
Reconciliation
Sweep on your own schedule so a lost event never loses money.