Перейти к содержимому
Webhook Morgue

Разбор сбоев вебхуков

Каждому упавшему вебхуку своё вскрытие.

Вставьте журнал доставки из Stripe, GitHub, Shopify или своей очереди. Webhook Morgue подпишет каждый сбой причиной, подскажет, что можно безопасно отправить повторно, и составит план повторов с разумными паузами.

Проверить подпись
Демонстрационные данные, не журнал реального клиента.

Что это

Бесплатный пункт разбора неудачных доставок вебхуков. Он читает обычный журнал и превращает его в понятный список дел, причин и следующих шагов.

Для кого

Для разработчиков и дежурных инженеров, которые получают вебхуки от платежных, торговых или кодовых платформ и должны быстро решить, что повторять.

Что решает

Слепые повторы. Повтор 401 или 410 только плодит новые ошибки, а 500 или таймаут обычно лечатся спокойным повтором. Инструмент различает эти случаи.

Дело

Одна доставка на строку. Событие, код статуса и заметку разделяйте вертикальной чертой или вставьте строки JSON.

Пример строки: invoice.paid | 500 | upstream timeout | 14:02

Дел пока нет

Загрузите демонстрационный журнал, чтобы увидеть полный разбор восьми доставок, или вставьте свой.

Журнал читается в вашем браузере. Ничего не загружается.

Проверка подписи

Большинство ошибок 401 возникают, когда подпись не совпадает. Вставьте исходное тело, секрет и заголовок подписи и посмотрите, сходятся ли они.

Используйте тестовый секрет. Проверка идёт в браузере, и секрет не покидает страницу.

HMAC SHA 256 считается через Web Crypto API прямо в браузере.

Причины смерти

Что обычно означает каждый сбой и что с ним делать.

408 · 504

Таймаут

Повторите с нарастающей паузой. Пусть обработчик отвечает за пару секунд, а долгую работу отдает в очередь.

5xx

Получатель упал

Повторите с нарастающей паузой, когда получатель снова здоров. Посмотрите его журнал ошибок по этому событию.

429

Упёрся в лимит

Подождите столько, сколько просит получатель, потом повторяйте медленно.

401 · 403

Подпись или доступ отклонены

Пока не повторяйте. Сверьте секрет подписи с обеих сторон, затем повторите один раз.

404 · 410

Адреса больше нет

Не повторяйте. Направьте вебхук на новый адрес или удалите подписку.

400 · 422

Данные отклонены

Не повторяйте как есть. Исправьте обработчик или схему, затем повторите один раз.

3xx

Перенаправлен

Получатель не должен перенаправлять. Укажите в вебхуке конечный адрес.

2xx

Доставлен

Ничего делать не нужно. Доставка прошла.

Как пользоваться

  1. Выгрузите журнал

    Скопируйте неудачные доставки из панели провайдера или своей очереди. Достаточно имени события и кода статуса.

  2. Проведите вскрытие

    Каждая строка станет делом с биркой, причиной смерти и понятным следующим шагом.

  3. Следуйте плану

    Повторите безопасные дела по предложенному графику, остальные сначала исправьте, затем поделитесь отчётом с командой.

Чего он не делает

  • Не подключается к провайдеру и ничего не повторяет за вас. Он говорит, что и когда повторить.
  • Не видит, что происходит внутри получателя. 500 значит, что упал ваш код, а почему, журнал не скажет.
  • Читает только показанные здесь форматы. Необычный журнал, возможно, придётся немного почистить.

Вопросы

Мой журнал куда-то отправляется?

Нет. Разбор, план и проверка подписи работают только в браузере.

Почему бы не повторить всё?

Повтор 401, 404 или 422 снова упадёт так же и может вызвать тревоги или блокировку. Сначала устраните причину, потом повторите один раз.

Почему паузы неравные?

Небольшой случайный сдвиг, его называют jitter, не даёт множеству повторов ударить по восстанавливающемуся серверу в одну и ту же секунду.

Связаться с автором

Есть вопрос, идея или предложение о работе? Напишите в X или Telegram.

Поддержать автора

Если инструмент сэкономил вам время, можно отправить чаевые на этот EVM адрес из своего кошелька.

0xd28Fd90eD69092bd01598f237aad33a0cc9c3EeA