Skip to main content
Use this endpoint to recover from a failed webhook delivery, or to re-verify a fix, without needing to trigger the job again. The original payload is resent byte-for-byte to the webhook’s current URL; a new attempt is recorded alongside the one being replayed, which is left untouched. For a list of past attempts, see Webhook Delivery Attempts.

Replay a Webhook Delivery endpoint

Requirements

  • Build permission. Your user must have the Build or Admin - All entitlement. Requests without it are rejected with 403.
  • Entitlement to the triggering Application. Same rule as the Webhook Delivery Attempts endpoint: with Build permission only, you can replay a job execution when the job runs on a fixed schedule, its triggering Workflow has no permissions restrictions, or you’re entitled to that Application. A job execution ID you’re not entitled to responds the same as one that doesn’t exist. See Errors.
  • A saved request payload on the attempt. Only attempts recorded after Webhook Observability was enabled have a saved payload. An attempt from before the feature was turned on can’t be replayed.

Path parameter

Request body: none.

What happens on replay

  • The most recent delivery attempt for the given execution is looked up, and its exact original payload is resent to the webhook’s current URL, not the URL that was in effect at the time of the original attempt.
  • A new attempt is recorded with attemptType: REPLAY. It does not overwrite or modify the attempt it replayed.
  • Exactly one delivery is attempted. A failed replay is not retried automatically.
  • If the resend succeeds, the webhook’s status changes from FAILING to ACTIVE (if it was FAILING).
A replay whose delivery fails is still a 200 from this endpoint, because the delivery attempt failed, not the API request. Check the responseBody and httpStatusCode fields on lastWebhookDeliveryAttempt to determine the actual result of the replay.

Response

200 OK.
lastWebhookDeliveryAttempt fields:

Errors

Unlike the list-style Webhook Delivery Attempts endpoint, this endpoint does return 404. There’s no page of results to come back empty, just one execution that either resolves or doesn’t.