> ## Documentation Index
> Fetch the complete documentation index at: https://docs.growthxai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhook Troubleshooting and Common Issues

> Fixes for webhooks that aren't delivering, were switched off, or fail signature checks.

Start with **Settings → API & webhooks → Webhooks → Recent deliveries**. It shows the last 100 delivery attempts, with status code, number of attempts and last error, and refreshes every 30 seconds.

## My webhook was switched off

A webhook is **switched off automatically after 50 failed deliveries in a row**.

✅ **Solution:** Fix your endpoint, then turn the webhook back on with its toggle. This resets the failure count.

***

## Deliveries show "pending" or "retry…"

A failed delivery is retried up to **5 times**, with the wait doubling each time (about 2, 4, 8 and 16 minutes, capped at an hour). Your endpoint should respond with a **2xx** status quickly.

***

## I'm not receiving an event

* Check the webhook is **active**.
* Check it's subscribed to that event, or to **All events (\*)**.
* Check the event actually happened. For example, `invite.accepted` only fires when LinkedIn reports the acceptance.
* `sequence.webhook` is only sent when a lead reaches a **Call webhook** step in a sequence.
* Some events are new. If you subscribed to a fixed list before `enrollment.held`, `sender.running_dry`, `sequence.stalled`, `lead.unsubscribed` or `meeting.booked` existed, add them or switch to **All events (\*)**.

***

## The signature check fails

* Compute the HMAC-SHA256 over the **raw request body**, exactly as received, before any JSON parsing.
* Use the webhook's own **Secret**. Each webhook has a different one.
* Compare it with the **`x-signature`** header. It is plain lowercase hex, with no `sha256=` prefix.
* Compare in constant time, and check the lengths match first.

See the code samples in [Outbound Webhooks](/integrations-api/outbound-webhooks#verifying-requests).

***

## I can't add a webhook

* The URL must start with `https://`.
* If you turned off **All events**, select at least one event.
* Owners and Managers can manage webhooks, as can an API key with the manager role.
* Outbound webhooks are part of the **Agency Plus** plan.

***

## I missed an event while my endpoint was down

Open **Recent deliveries** and click **Replay** on the ones you missed. A replay is a new, signed delivery carrying the same payload plus `"replayed": true`. See [Replay a delivery](/integrations-api/outbound-webhooks#replay-a-delivery).

## Related articles

* [Outbound Webhooks](/integrations-api/outbound-webhooks)
* [The Public API](/integrations-api/public-api)
* [Pricing Plans](/subscription-and-billing/pricing-plans)
