Skip to content

Webhook Logs & Retries

How LeadPattern retries failed webhook deliveries for about 24 hours, how to redeliver a failed event, when a webhook is auto-disabled, and how to read the 30-day delivery logs.

5 min readUpdated Oct 7, 2026

LeadPattern records every delivery attempt. When your endpoint is down or returns an error, it retries automatically for about 24 hours. You can also send any failed event again by hand. If an endpoint keeps failing, LeadPattern disables the webhook to stop sending events nobody receives.

Delivery rules

  • Success means any 2xx response within 10 seconds. The response body is ignored.
  • Retried for about 24 hours: timeouts, network errors, and HTTP 408, 425, 429 and 5xx responses. An event gets up to 9 attempts in total. See the schedule below. A Retry-After header on a 429 or 503 is honoured, up to 15 minutes.
  • Not retried: any other 4xx response, such as 400, 401 or 404. These are treated as permanent failures.
  • Redirects aren't followed. A 3xx counts as a failed delivery, so register the final URL.
  • At least once, possibly out of order. Deduplicate on X-Webhook-Id and order by the payload timestamp.
  • Paused while the workspace is restricted. Restricted or billing-blocked workspaces send no deliveries.

Retry schedule

After a failed attempt, LeadPattern waits longer before each new try. Short outages recover within minutes, and an endpoint that's down for most of a day still gets the event.

AttemptSent after the previous attempt failed
1Immediately, when the event happens
210 seconds
31 minute
45 minutes
530 minutes
61 hour
73 hours
86 hours
912 hours (about 22½ hours after the first attempt)

Every attempt has the same X-Webhook-Id and payload, so deduplicating on the id is safe. Each attempt is signed again with a fresh X-Webhook-Timestamp.

If you disable the webhook, or unsubscribe from the event, while retries are pending, the remaining retries stop. The logs show this as a final Failed row ("retries stopped").

Redeliver a failed event

Once you've fixed your endpoint, you can send a failed event again without waiting for anything new to happen.

1

Open the delivery logs

Click the Delivery Logs icon on the webhook.

2

Find the failed row

Filter by Failed if the list is long.

3

Click Redeliver

LeadPattern sends the original payload again, with the same event id and a fresh signature. The new attempt appears at the top of the logs, marked Manual.

  • You need Create / Update / Delete Webhooks to redeliver, and the webhook must be active.
  • A redelivery is a single attempt. It isn't retried automatically, and a failed redelivery doesn't count toward auto-disable.
  • You can't redeliver an event that's still being retried automatically. Wait for it to finish.
  • Each event can be redelivered once every 30 seconds. Payloads are kept for 30 days, so older events can't be redelivered.
  • From code, call POST /v2/webhook/:webhookId/logs/:eventId/redeliver with your API key. See the developer API.

Auto-disable after repeated failures

If 50 events in a row fail all their attempts, LeadPattern disables the webhook. Because each event is retried for about 24 hours, this only happens after a long outage. Its status changes to Auto-disabled after failures, showing the count and the time of the last failure, and every member who can manage webhooks gets a notification.

1

Find the cause

Open the delivery logs (below) and check the HTTP code and Error for the failed attempts.

2

Fix the endpoint

Common causes are an expired TLS certificate, a firewall blocking requests, a changed URL, or a server that's too slow to respond within 10 seconds.

3

Test it

Open Edit and click Send test to confirm the endpoint answers with 2xx.

4

Re-activate

Click the play icon on the webhook. LeadPattern sends a test event first: the webhook turns back on only if your endpoint answers with 2xx. This resets the failure count.

Read the delivery logs

Click the Delivery Logs icon on any webhook. Members with View Webhooks & Delivery Logs can open them. Each row is one attempt:

ColumnWhat it shows
TimeWhen the attempt was made.
EventThe event label, e.g. Message Received (or test).
StatusDelivered, Retrying (another attempt is scheduled) or Failed (no more attempts).
HTTPThe status code your server returned, or blank if there was no response.
AttemptWhich attempt this was, 1 to 9, or Manual for a redelivery.
ErrorWhy it failed, e.g. "HTTP 503" or "Timed out after 10s".
PayloadView opens the JSON that was sent. Shown only to members who can manage webhooks; stored with the first attempt.
(action)Redeliver on failed rows, for members who can manage webhooks.

Use the status filter (All statuses, Delivered, Retrying, Failed) to narrow the list. The logs update live as deliveries happen, and logs are kept for 30 days.

What's next

Was this article helpful?

Your feedback helps us continuously improve our documentation.

Need more help with this topic?Ask LeadPattern Support

Related Articles