Testing and debugging
Send test events and read the delivery log.
Send a test event
Open Settings → Webhooks, choose an endpoint and use Send a test event. Zaher sends realistic sample data for the event you pick:
- It goes through the real pipeline — signed with your secret, same headers, same timeout.
- The body has
"test": true. Ignore test events in production logic if you need to. - Test events are tried once and never count toward auto-disabling.
- The endpoint must be enabled.
Read the delivery log
The endpoint page lists every attempt from the last 30 days:
| Column | Meaning |
|---|---|
| Status | Succeeded (2xx), Failed or Pending |
| Response | Your HTTP status, or the error (timeout, connection refused, blocked URL) |
| Duration | How long your endpoint took to answer |
| Attempt | Which retry this was (1–8) |
Hover a failed response to see the first 2 KB of your server's reply.
Resend
Fixed a bug? Click Resend on any delivery to send that same event again —
same id, same data. Your deduplication logic will treat it as a repeat
unless you've cleared the id.
Common failures
| Symptom | Likely cause |
|---|---|
Timed out after 10000ms | Your handler does slow work before replying — reply first. |
HTTP 400 from your server | Signature check failing — are you verifying the raw body? |
HTTP 301/302 | Redirects aren't followed — use the final HTTPS URL. |
Webhook URL not allowed | The URL resolves to a private or internal address. |