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.
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
2xxresponse within 10 seconds. The response body is ignored. - Retried for about 24 hours: timeouts, network errors, and HTTP
408,425,429and5xxresponses. An event gets up to 9 attempts in total. See the schedule below. ARetry-Afterheader on a429or503is honoured, up to 15 minutes. - Not retried: any other
4xxresponse, such as400,401or404. These are treated as permanent failures. - Redirects aren't followed. A
3xxcounts as a failed delivery, so register the final URL. - At least once, possibly out of order. Deduplicate on
X-Webhook-Idand order by the payloadtimestamp. - 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.
| Attempt | Sent after the previous attempt failed |
|---|---|
| 1 | Immediately, when the event happens |
| 2 | 10 seconds |
| 3 | 1 minute |
| 4 | 5 minutes |
| 5 | 30 minutes |
| 6 | 1 hour |
| 7 | 3 hours |
| 8 | 6 hours |
| 9 | 12 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.
Open the delivery logs
Click the Delivery Logs icon on the webhook.
Find the failed row
Filter by Failed if the list is long.
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/redeliverwith 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.
Find the cause
Open the delivery logs (below) and check the HTTP code and Error for the failed attempts.
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.
Test it
Open Edit and click Send test to confirm the endpoint answers with 2xx.
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:
| Column | What it shows |
|---|---|
| Time | When the attempt was made. |
| Event | The event label, e.g. Message Received (or test). |
| Status | Delivered, Retrying (another attempt is scheduled) or Failed (no more attempts). |
| HTTP | The status code your server returned, or blank if there was no response. |
| Attempt | Which attempt this was, 1 to 9, or Manual for a redelivery. |
| Error | Why it failed, e.g. "HTTP 503" or "Timed out after 10s". |
| Payload | View 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.
Related Articles
Manage Webhooks
Edit LeadPattern webhooks, rotate or replace signing secrets with a 24-hour grace period, pause and resume deliveries, and understand each status badge.
Verify Webhook Signatures
Why you should sign LeadPattern webhook deliveries, how to turn signing on, and how to verify the HMAC-SHA256 X-Webhook-Signature headers, with Node.js and Python examples that handle secret rotation.
Webhooks Overview
LeadPattern webhooks send real-time events, such as new messages, chat assignments and calls, to your own server as signed HTTPS POST requests.
Create a Webhook
Register a webhook endpoint in LeadPattern, choose the events it receives, sign deliveries with a secret, and send a test before saving.

