Operations
If events are not reaching your app
Most local delivery issues come from provider URL drift, an incomplete target URL, or a local server that is not running. Walk through the checklist before digging deeper.
Delivery checklist
- The webhook provider uses the URL from tofu hooks url.
- Your local server is running before you set or test the target.
- The target URL includes the full local route path.
- Signed webhook handlers read the raw request body.
- Replay only works before payload expiry and before manual payload expiry.
What to try next
Keep tofu watch running while you trigger a provider test event. If Tofu receives the event but delivery fails, update the target URL and replay the latest event before its payload expires.
tofu replay latest --hook stripeSignature verification failing
If the provider returns 200 but your handler rejects the body with a signature error, make sure the handler reads the raw request bytes before parsing. Framework body parsers can mutate the payload and break Stripe's, GitHub's, or Clerk's HMAC checks.