Skip to content
catchook
Pre-launch — join the waitlist

Webhooks fail silently

A broken integration and a quiet one send you the same signal: nothing at all. Catchook watches every webhook you receive and tells you the moment one stops behaving.

Endpoints4
Live
EndpointLast event
Stripe
Production
12s ago
GitHub
CI events
1m ago
Shopify
Orders
8s ago
Twilio
Delivery status
2h 11m ago
Alert sent to #eng-alerts
twilio has been silent 3× longer than its quietest hour this month

You find out from a support ticket

Most outages announce themselves — 500s, a queue backing up, a latency graph bending. Inbound webhooks do not. Here is what breaking looks like from inside your system.

What your system sees

nothing

The provider disabled your endpoint

Stripe, GitHub and Shopify all retire webhook subscriptions that keep failing. Your endpoint 500s through a deploy, the retries fail too, and at some point the provider stops trying — for good. The record of that lives in their dashboard, not yours.

What your system sees

nothing

The payload changed shape

A field moves inside a nested object, or starts arriving as null. Your handler throws, you return 500, the provider retries a few times and gives up. Your error tracker shows a handful of exceptions and then silence, which reads like a resolved blip.

What your system sees

nothing

The signature check started failing

Somebody rotated a secret and updated one of the two places it lives. Every request now fails verification and is rejected before it ever reaches your handler. From your side this is indistinguishable from no traffic at all.

What your system sees

200 OK…in 8 seconds

It got slow, not broken

Deliveries still succeed, because something downstream degraded rather than failed. Nothing errors. Nothing alerts. Events queue behind the provider's own concurrency limits and the whole integration runs hours late.

Only the last one shows up in a normal APM tool — and only if you were already watching that endpoint.

The part only we can answer

Is it you, or is it your provider?

When a provider goes quiet you cannot tell whether your endpoint broke or theirs did. So you read your own logs, wondering about the deploy you shipped an hour ago. Their status page only tells you what they have already decided to publish.

provider incidentdetected 14:32 UTC

Not your deploy.

Nothing has arrived from this provider for any account receiving from it — every one of them went quiet inside the same minute.

Inbound events · every account on this provider

Accounts gone quiet
All 9
Your last deploy
12:04 UTC, 2h 28m earlier
Provider status page
No incident reported

Your own traffic going quiet tells you nothing on its own. Nine accounts going quiet in the same minute tells you everything.

A baseline, and an alarm when reality leaves it

The same thing every other part of your infrastructure already has. None of these need you to have suspected a problem first.

freshness

last event vs. normal

When this endpoint last delivered, against what is normal for it.

alertstripe silent 3× longer than its quietest hour this month

success rate

failures over a window

The share of deliveries failing over a window, not whether one failed.

alertgithub failure rate 14% over 15m, baseline 0.2%

latency

p95, trended

How long your handler takes to answer, trended per endpoint.

alertshopify p95 4.2s, was 210ms an hour ago

payload shape

fields, over time
"issue": {- "assignee": { "id": "usr_8f2…" }+ "assignee": null

The fields you have been receiving, and when a provider changes them.

alertlinear: issue.assignee arrived null on 38% of events, never before

What you get

All of it from day one, in the single plan. Nothing held back for a higher tier.

Alerts before the ticket

Slack, email or webhook the moment a signal leaves its baseline — including when nothing is arriving at all.

#eng-alerts14:32

Catchookapp

stripe has been silent for 2h 11m

expected ~40/hr · last event 12:21 UTC

Webhooks on your laptop

catchook listen puts live provider webhooks on localhost — no tunnel, no public URL, replay on a keypress.

$ catchook listen --forward-to http://localhost:3000

live4 ev · 3 ✓ · 1 ✗

15:05:12stripe2001ms

15:05:11stripe5001ms×2

15:05:10github

Every event, replayable

Full history with headers and the original bytes, re-sendable to your machine or to the real destinations.

One view, every provider

Stripe, GitHub, Shopify and Linear in one place, not four dashboards and four log formats.

Fan-out with retries

One inbound webhook to as many destinations as you want, each with its own retry policy and rate limit.

Schema drift detection

Told when a provider quietly changes a payload, rather than finding out from a stack trace.

Synthetic checks

Active probing, so an integration idle all week is still known to be working.

Deploy correlation

Your releases on the same timeline as your incidents, so the question answers itself.

Log-and-replay is a debugging tool

Genuinely useful — once somebody has told you there is a bug. Every question a log answers, Catchook answers too. Two below, it cannot.

You want to knowWebhook log toolsCatchook
A delivery failedIn the log, with a replay buttonSame — and every attempt kept, not just the last
Deliveries have been failing for an hourIn the log, if you happen to open itYou were alerted at minute two
Nothing has arrived since 04:00No record of an event that never cameAlerted, against what is normal for that endpoint
A provider changed the payloadVisible once you diff two events by handAlerted when the shape moved
Is it you, or is it the provider?Your logs only ever show your own trafficAnswered from traffic across every account on that provider

One plan. Everything in it.

Nothing is held back for an Enterprise tier. If Catchook does it, your plan does it — you pay for how much you put through it, not for which features you are allowed to use.

Rates are set before launch. Waitlist members see them first.

  • Every feature, from the first paid plan
  • Unlimited endpoints, destinations and team members
  • Alerting, monitoring and history — not a higher tier
  • Usage-based beyond the included quota, at the same rate for everyone

Priced separately, because each one costs us real infrastructure rather than a feature flag:

  • Dedicated IPA stable source address to allowlist
  • EU-only hostingData residency in the European Union
  • SSO / SAMLIdentity provider integration

Find out before your customers do

Catchook is not open for sign-ups yet. Leave an address and you will hear from us when it is — first, and with the launch pricing.

One email when sign-ups open. Nothing else, ever.