How webhooks get lost

06.06.2026, 17:54

What happens to webhooks when a developer closes their laptop, a local server is unavailable, or the network connection drops? In many cases, those webhooks can be lost. In this article, we’ll look at why this happens and how Adal helps you receive webhooks even when your network or infrastructure is temporarily unavailable.

Let’s start with the obvious: reliable services usually retry webhook delivery when the first attempt fails. But there are two important problems with that.

First, not every service retries failed webhook deliveries. Second, even when retries are supported, they happen according to the provider’s own internal schedule. You do not control how many attempts will be made, how long the intervals will be, or when the next delivery attempt will happen.

If a network issue, server restart, or closed laptop overlaps with those retry windows, the webhook may still be lost.

Some providers also use very short retry intervals, while others limit the total number of attempts. As a result, you depend entirely on the provider’s delivery policy and cannot control webhook delivery from your side.

This leads to a practical question: how can you control webhook retries when you do not control the service that sends them?

The answer is to receive webhooks through Adal.

Once Adal receives a webhook, it stores the original request and lets you control what happens next. You can retry delivery to configured destinations, inspect the received request, review headers and body, and simulate receiving the same webhook again with the same parameters as the original request.

For example, imagine you are testing payments, but your local server is turned off when the payment provider sends a webhook. Without an intermediate layer, that request may be lost or retried only according to the provider’s rules. With Adal, the webhook is received and stored first. After that, you decide when and where to deliver it again.

This makes working with webhooks more reliable during local development, unstable network conditions, server downtime, or temporary infrastructure issues.