Re-queue a failed delivery
Reopen a delivery that gave up, after the receiving endpoint has been repaired.
Precondition. Only a terminal failure can be retried: the delivery must have status: "failed" with no nextRetryAt scheduled, which GET /webhooks/{webhookId}/events reports as terminal: true. A delivery that succeeded, is still pending, or is merely between automatic attempts answers 409 not_retryable.
What it does. The delivery is reset to pending, its attempt counter is set back to zero, and its recorded response status, response body, and delivery timestamp are cleared. It is then queued for immediate dispatch, which gives it a fresh full run of the automatic policy rather than one last attempt. The per-attempt records written against it are kept, so the history of what already failed is not erased.
The automatic policy this sits alongside. A delivery is attempted up to 6 times before it becomes terminal. Between attempts the delay doubles, starting at 60 seconds and capped at 1 hour: roughly 1m, 2m, 4m, 8m, 16m, 32m. A delivery is also marked terminal immediately, without consuming the remaining attempts, when the target URL fails the SSRF check at send time, since retrying a destination that must never be contacted is pointless.
Because the delivery keeps the same event id, a consumer deduplicating on X-InkSeal-Event-Id sees a manual retry as the same event it may already have processed.
Accepts an Idempotency-Key; a retry with the same key replays the original response instead of reopening the delivery twice.
Request
- Base URL: https://inkseal.net/api/v1
- URL: https://inkseal.net/api/v1/webhooks/{webhookId}/events/{eventId}/retry
- Auth: HTTP bearer
Headers
Makes this mutation retry-safe. 1 to 255 printable ASCII characters (0x20 to 0x7e), trimmed before use. The key is scoped to the workspace and the credential that sent it. Reusing it with a different method, path, or payload answers 422 idempotency_key_reuse. A completed attempt replays its stored status and body with an Idempotent-Replay: true response header; 5xx, 429, and non-JSON answers leave the key retryable. A concurrent request holding the 90 second lease answers 409 idempotency_in_progress. Records are retained 24 hours.
Response
The delivery has been reset and queued.
Example response
{
"data": {
"id": 4821,
"status": "pending"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.