Skip to content

Test and troubleshoot a webhook

A webhook that has quietly stopped delivering looks exactly like one that had nothing to deliver. This page covers proving an endpoint works, reading what was actually sent and returned, and getting a missed event through after the receiver comes back.

Required role: Administrator.

  1. Go to Integrations → Webhooks.
  2. Select Test on the webhook. The result appears with the response and how long it took.
  3. Open the webhook and switch to the Delivery Logs tab.
  4. Filter by event, status, or date range.
  5. Open a failed delivery to read its Request Payload and Response Body.
  6. Select Replay Delivery once the receiving system is fixed.
  7. Use Pause on a webhook whose endpoint is down for an extended period.

Test sends a delivery to the configured URL immediately and reports back with the response message and the round-trip time, whether it succeeded or failed.

Test after every change to the URL, the secret, or the custom headers. A test costs nothing and catches the whole class of problems where the endpoint moved and nobody told the person who owns this page.

OptionDescription
EventWhich event the delivery carried.
StatusSuccess, Failed, or Retrying.
HTTPThe status code the receiving system returned.
AttemptWhich attempt this was, counting retries.
LatencyHow long the delivery took.
TimeWhen it was attempted.

Filter the log by event, by status, or by date range to answer a specific question rather than scrolling. “Did any employee.terminated events fail last week” is one filter, not a search through everything.

Opening a delivery shows the Request Payload Humavera sent and the Response Body the receiving system returned, along with its HTTP code and attempt number.

The response body is where the answer usually is. The receiving system explains, in its own words, why it rejected the request — an authentication failure, an unexpected field, a timeout. Reading it beats guessing from the status code.

Example: HC Corp’s service desk returning a 401 on every delivery is not a Humavera problem. The response body names the credential it was expecting, which is a custom header that was overwritten on the last edit.

Replay Delivery sends the same delivery again.

This is what makes a receiver outage recoverable. Fix the receiving system, then replay the deliveries that failed while it was down, rather than reconstructing the missed events by hand.

Replay the failures in the order they occurred where sequence matters — a create replayed after its own update leaves the receiver with stale data.

Failures accumulate, and repeated failure pauses the webhook

Section titled “Failures accumulate, and repeated failure pauses the webhook”

The webhook list carries a Failures count. An endpoint that keeps failing is paused automatically rather than retrying forever against a system that is not answering.

A paused webhook delivers nothing. That is the correct behaviour and it is also the failure mode nobody notices, because a paused webhook is silent in exactly the way a quiet one is.

Check the Status and Last Delivery columns on this page periodically. Last Delivery: Never on a webhook created three weeks ago, or a last delivery a fortnight old on an event that fires weekly, is the finding.

Example: HC Corp’s receiving service being down over a bank holiday weekend accumulates failures and pauses the webhook. Everything sent afterwards is not queued for that endpoint until somebody reactivates it.

Use Pause when you know the receiving system will be down — a planned migration, a maintenance window longer than the retry policy covers. Use Activate to resume.

Pausing is better than letting the retries burn out and the failure count climb, because you know when you paused it and therefore what to replay.

A working webhook delivers as events occur, signed and logged. Where events are being generated but not reaching the endpoint at all, the event bus page shows whether the event was raised and which subscribers processed it — that is the layer beneath this one and the place to look when the delivery log is empty rather than failing.