Retries and Endpoint Health
Retries
If your endpoint does not return a 2xx in time (see Acknowledging), the delivery is retried after 1 minute, 5 minutes, 30 minutes, 2 hours, 6 hours, 24 hours and 24 hours, each with some jitter: 8 attempts over about three days. After that it is marked exhausted; it stays in your delivery history and you can replay it from the dashboard. Repeated failures also change your endpoint's state — see below.
Every retry carries the same Ryno-Event-Id and body id, and an incremented Ryno-Attempt.
Endpoint health
| State | How you get there | What we do | How you leave it |
|---|---|---|---|
Active | Registration, re-enable, any successful delivery. | Deliveries as normal. | 5 consecutive failures → Degraded. |
Degraded | 5 consecutive failures. | One probe delivery every 30 minutes; other due deliveries wait. Nothing is lost. | A success → Active. 72 hours degraded → Disabled. |
Disabled | 72 hours degraded, or your endpoint returned 410 Gone. | Nothing is sent. Deliveries pending at that moment are marked exhausted but stay in your history, replayable. Your technical contact is emailed with the reason and the count. | Re-enable (or register a corrected URL), then replay the window you missed. |
Return 410 Gone deliberately if you want us to stop sending; it disables the endpoint at once.
Your endpoint's current state, consecutiveFailures, degradedSince, disabledAt and disabledReason are shown in the dashboard — see Managing your webhook.
Testing your receiver
POST /customer/v1/partner-profile/webhooks/test in the dashboard sends a real webhook.test event (data: { message, occurredAtUtc, isTestFire: true }) through the same path, signed with your secret, so you can prove your receiver before real events arrive.