DEV Community

Umut Keskin
Umut Keskin

Posted on

HookChaos: Webhook Stress Tester CLI/Open-Sourced Project

An order got fulfilled twice. Took me two days to figure out our handler wasn't idempotent and the provider was retrying on timeout. Fine, lesson learned.

Then it happened again. Different bug, same category — a webhook edge case we never tested for because our "testing" was basically: send a ping, get a 200, ship it.

That's when I realized we had no real way to test the bad stuff. Duplicate events, out-of-order delivery, delayed events hitting stale state, signature validation breaking over a trailing newline. We just hoped production wouldn't surface them.

Production always surfaces them.

So I built HookChaos — a local-first CLI that throws these scenarios at your endpoint before production does.
'''bash
hookchaos run --pack duplicates --target http://localhost:3000/webhooks
'''
Built-in scenario packs for the common failure modes, write your own, save and replay results, share with your team. Visual studio if you hate terminals.

Open source and early stage:

GitHub logo umutkeskin1001-cell / HookChaos

│ Local-first CLI for reproducible webhook failure simulation with reusable chaos packs, HTML reports, and Git-backed │ pack sharing.

HookChaos

HookChaos is the package manager for webhook failure scenarios.

HookChaos is a local-first CLI for reproducible webhook failure simulation. It is built for the bugs that only show up when webhook consumers see duplicates, out-of-order deliveries, retries, signature failures, timestamp skew, and selective drops.

Why This Exists

Most webhook tooling helps you receive traffic.

That is not enough when the real bug is in what happens after the first happy-path request:

  • the same event is delivered twice
  • a later event arrives first
  • a retry lands after your state already changed
  • signature or timestamp validation rejects an otherwise valid payload
  • one delivery disappears while the rest of the sequence continues

HookChaos turns those failure modes into reusable packs you can run on demand, save locally, publish to a Git-backed registry, and replay from history.

Install

Install HookChaos into ~/.local/bin:

cd /path/to/hookchaos
make install
export PATH="$HOME/.local/bin:$PATH
Enter fullscreen mode Exit fullscreen mode



What's the worst webhook bug you've dealt with? Asking because that's literally how the scenario list is going to grow.

Top comments (0)