Skip to content

Fix a paused webhook endpoint

Why Embers pauses an endpoint on a 4xx, five rejected events, or exhausted retries, how to read the delivery log, fix the receiver, and resume.

Solo and above Updated 5 min read

An endpoint that keeps rejecting deliveries is paused rather than retried forever. Open Integrations in the sidebar and choose Fix on the Webhooks row, which opens the Webhooks page (/integrations/webhooks). The paused endpoint carries a Paused badge, and Needs attention gives its reason with Resume. Under Settings, then Developer (/developer/webhooks), the same endpoint shows a banner with the reason, followed by Correct the URL and save, or resume the endpoint, before replaying a delivery.

The three ways an endpoint pauses

A terminal 4xx pauses immediately. Any 4xx other than 408, 425, and 429, and other than the rejected-event codes below, means your receiver says the endpoint itself is wrong, and retrying would repeat the rejection. A 404 pauses after one attempt with Endpoint paused after receiving HTTP 404. So do 401, 403, and 410.

Five rejected events in a row pause it. A 400, 409, or 422 is your receiver refusing one event’s payload. That event fails after one attempt and the endpoint keeps delivering the rest. When five events in a row are refused like that with no successful delivery in between, the endpoint pauses with Endpoint paused after 5 deliveries in a row were rejected (last: HTTP 400)., because a receiver that refuses everything is broken. One successful delivery resets the count.

Exhausted retries pause afterwards. Network failures, timeouts, 408, 425, 429, and any 5xx are retried seven times after the first attempt, from 30 seconds out to about 6.3 days. When they all fail the endpoint pauses with Delivery retries were exhausted. The full schedule is in webhook retries and pauses.

Embers accepts any 2xx as success and does not follow redirects, so a 301 or 302 to your real handler counts as a failure.

Read the delivery log first

Look at the endpoint’s log before changing anything: Activity on the Webhooks page (pick the endpoint, then filter by Failed), or Recent deliveries under Settings, then Developer, filterable by state and by event type. It holds the last 30 days. Each row shows the event, its state, and the HTTP status, as in “Your endpoint answered HTTP 404”; the details view shows every attempt and the error.

StateWhat it means
deliveredYour endpoint answered 2xx
failedA terminal 4xx (a 400, 409, or 422 fails the event without pausing the endpoint), or the last retry failed
blockedCreated while the endpoint was paused, disabled, or not available on your plan. It was kept, not sent

The status usually names the fix. A 404 is a wrong path, a 401 or 403 is your own authentication rejecting Embers, a 400 is a body your handler cannot parse, and a run of 5xx is your service failing on the request.

Fix the endpoint

  1. Confirm the URL is a receiving URL

    It must be public HTTPS on the default port. A URL with a # fragment is refused, because HTTP clients never send fragments. On a service such as Webhook.site, copy the unique receiving URL, not the dashboard URL you are viewing.

  2. Answer fast and answer 2xx

    Embers waits about 10 seconds for a response. Acknowledge the request, then do the work asynchronously, so a slow handler does not turn into a string of timeouts.

  3. Verify the signature over the raw body

    Verify the Standard Webhooks headers over webhook-id.webhook-timestamp.body using the raw request body. Parsing and re-serialising the JSON before verifying is the most common cause of self-inflicted 401s. See verify webhook signatures. In n8n, turn on Raw Body on the Webhook node, then verify the signature in a Code node.

  4. Deduplicate on webhook-id

    Delivery is at least once and retries can arrive out of order, so a replay may deliver an event your system already has.

Resume and replay

Editing a paused endpoint’s URL and saving clears the pause automatically, which is the path to use when the receiver moved. If the URL was right and the receiver was down, choose Resume instead, under Needs attention or in the endpoint’s … menu.

Once the endpoint is active again, Replay appears on rows in a failed or blocked state. It is hidden while the endpoint is paused or disabled, so you cannot replay into a receiver that is still broken.

Every account administrator receives a security email when an endpoint is created, updated, removed, paused, resumed, or has its secret rotated. It names the endpoint, the workspace, the destination hostname, who acted, and what changed, and never includes the URL path, query credentials, or the signing secret. If the email is missing, see not receiving Embers emails.

Troubleshooting

  • The URL will not save. The message names the rule: Webhook URLs must be public HTTPS URLs., Webhook URLs must use the default HTTPS port., Webhook hostname could not be resolved., Webhook URLs must not resolve to private addresses., or the fragment message.
  • Saving the endpoint says the account is at its limit. An account can have up to 10 endpoints. Remove one you no longer use.
  • Zapier, Make, or Clay stopped receiving. They use the same signed webhook, so the same pause rules apply. If you rebuilt the Zap or scenario, copy its new hook URL, save it on the endpoint, and replay. See the Zapier recipe.
  • Replay is missing. The endpoint is still paused or disabled. Resume it, or save a corrected URL, first.

Frequently asked questions

Does Embers follow a redirect to my real handler?
No. Redirects are not followed, so a 301 or 302 counts as a failed delivery. Point the endpoint at the final HTTPS address.
Do I have to replay deliveries one by one after fixing the endpoint?
Yes. Resuming or saving a corrected URL lets new events through, but earlier failed and blocked rows are replayed with the Replay button on each row.
How long does Embers wait for my endpoint to answer?
About 10 seconds after connecting. A slower answer is a timeout, which is retried, and enough of them in a row pause the endpoint.

Was this article helpful?

Still stuck?

Send us the article you were following and what happened. We answer from the same inbox that writes these pages.

Email support

↑↓ to move ↵ to open esc to close