~learn.
0:00 / 1:08
Side quest 29 · GitHub

GitHub gives your webhook 10 seconds. Then it's a failure

transcript

GitHub gives your webhook 10 seconds to answer with a 2XX. Then it hangs up.

A docs host gets a push webhook. It rebuilds first. At 10 seconds, GitHub cuts the connection. The rebuild finishes at 40 seconds. Too late. The delivery is recorded as failed.

Surely GitHub tries again? No. GitHub doesn't redeliver failed deliveries automatically. It stays failed unless you act.

The fix is on your side. Check the HMAC signature first. Queue the work. Answer 2XX at once. Rebuild from your own queue, in your own time.

Missed one? You can redeliver anything from the past 3 days. The delivery id stays the same. So you can skip repeats.

In 2018, over five million hook events piled up. GitHub weighed recovery against overloading its partners. About 200,000 payloads outlived an internal TTL. Dropped.

A webhook is a notification, not the record. Answer fast. Then read current state from the API.

Full breakdown in the lecture.