HookGet עברית Start free

Debugging a failing delivery

Reading the timeline: what each status code usually means and what to do about it.

In short

  • Start from the attempt timeline: status, latency and the response body are all recorded.
  • A 401 usually means a rotated secret; a timeout usually means work done before acknowledging.
  • Endpoint health gives success rate and latency percentiles over the last day.
msg_01J8ZQ3F9VBAQ4E1S0TZY6P8YV order.created · 2 units
#TimeStatus CodeLatencyWhy
1 09:41:02 failed 503 1,204 ms Service Unavailable
2 09:41:07 failed 503 980 ms retried after 5s
3 09:41:37 failed timeout 15,000 ms retried after 30s
4 09:46:37 delivered 200 142 ms retried after 5m

Same webhook-id on every attempt, so the consumer can deduplicate.

Every attempt against one destination: what was sent, what came back, how long it took, and how long we waited before trying again. This is the answer to “did you send it?” without a database query.

Read the timeline first

Each attempt records the HTTP status, the response time, an error class when there was no status, and the first kilobyte of the body. Most questions are answered before you open a log on the other side.

curl https://api.hookget.com/v1/events/msg_…/attempts -H "authorization: Bearer $HOOKGET_KEY"

What the usual answers mean

SymptomMost common causeWhat to do
401 or 403 from the destinationThe consumer is verifying against an old secretCheck whether the secret was rotated and the consumer still holds the previous one
Signature mismatch reported by the consumerThe body was parsed and re-serialised before verificationVerify over the raw bytes
TimeoutsThe consumer does its work before answeringAcknowledge first, process after
Intermittent 5xxA deploy or a dependency of the consumerNothing — the retry schedule is for exactly this
Everything failing since a fixed momentDNS, certificate expiry or a firewall changeCheck the destination directly from outside your network
Nothing attempted at allNo active destination subscribes to that event typeCheck the event-type filter on the destination

Endpoint health

curl https://api.hookget.com/v1/endpoints/ep_…/health -H "authorization: Bearer $HOOKGET_KEY"

# success rate over 24h, p50 and p95 latency, consecutive failures,
# and the reason if it has been disabled

An assistant can do the same reading: the MCP server exposes a diagnose tool that combines the URL check, the breaker state and the health figures into a verbal verdict.

Start delivering webhooks today

Point your webhooks at HookGet and watch the first delivery arrive, signed, in under a minute.

Create a free account Try the free webhook tester

10,000 deliveries a month free, no credit card. The free tier blocks rather than bills, so trying it cannot produce an invoice.