Skip to main content
Start by finding out whether Nylon tried. Open Webhooks, select the endpoint, and read its delivery log — that answers the question in one look, and it changes what you do next.

Nylon shows no delivery at all

Nylon never tried. One of:
Check the endpoint’s events. An endpoint with a named subset receives exactly that subset — including no event types added since you configured it. Ticking every box stores “all events” and keeps up with new ones.
post.published fires when a post publishes; it does not fire because you expected one to. Check the request logs for the call you think should have triggered it.
A disabled endpoint receives nothing, and events are not queued while it is disabled. The list shows a red Disabled badge and the drawer shows why.
Easily done with one endpoint per environment. Check the URL.

Nylon shows the delivery as retrying or failed

Nylon tried and your endpoint did not return a 2xx. Select the row for the exact response your server gave. The most common cause by far is signature verification failing. Three things to check, in this order:
  1. Are you signing the raw body? A body that has been parsed and re-serialised will not match, even if it is semantically identical. Capture the raw bytes before any JSON middleware touches them.
  2. Is the secret the current one? Rotating has no overlap window — the moment you rotate, deliveries are signed with the new secret and a receiver holding the old one rejects every one. The drawer shows the current secret’s last four characters.
  3. Is your timestamp tolerance too tight? Nylon documents 5 minutes. A tolerance of a few seconds fails on any retry, and on any clock drift.

Nylon shows it delivered but you saw nothing

Nylon got a 2xx from something. Your endpoint answered and then dropped the work — a handler that acknowledges before processing, a queue that rejected the job, an exception swallowed after the response. Check your own logs from the timestamp on the delivery row.

The endpoint has been disabled

After 20 consecutive failed deliveries Nylon stops sending. The count resets to zero on any success, so this only happens to an endpoint that has been dead for a sustained stretch. Fix the endpoint, then Re-enable it from the menu, then send a test event to confirm before you rely on it. A disabled endpoint refuses test events too, so re-enable first.

Prove it works, from scratch

Send a test event from the menu. It is a real, signed delivery, and it reports back what your endpoint returned. If a test event succeeds and real events do not, the difference is in the event type or your handling of it, not in the transport.

Do not lose events while you debug

Retries span a little over 32 hours across seven attempts, which is generous but finite. If your receiver will be down longer than that, point the endpoint at something that returns 2xx and stores the payload, and process the backlog afterwards.

Deliveries and failures

The retry schedule, disabling and rotation.

Verifying the signature

Worked verification code.