Řešení problémů
Proč byl můj endpoint webhooku vypnut?
Emailit webhook vypne po 3 dnech nepřetržitých selhání doručení. Zjistěte, proč doručení selhávala, znovu endpoint zapněte a odešlete události znovu.
Tento článek vysvětluje, proč Emailit přestane posílat události na webhook, jak najít příčinnou chybu a jak získat zmeškané události zpět.
Příznaky
- Dostali jste od Emailitu e-mail, že váš webhook selhává, a později další, že byl vypnut.
- Webhook má v Email APIWebhooks stav vypnutý a nové události už na váš endpoint nedorazí.
- Karta Requests na stránce webhooku uvádí požadavky se stavem Failed a mnoha pokusy.
Příčina
Emailit považuje za úspěch jakoukoli odpověď 2xx. Vše ostatní se počítá jako selhání, včetně:
- Stavových kódů
4xxnebo5xx, například z kontroly podpisu nebo po pádu aplikace. - Žádné odpovědi do 30 sekund.
- Přesměrování. Emailit nesleduje
301ani302, takže URLhttp://, které přesměrovává nahttps://, nebo chybějící lomítko na konci selžou pokaždé. - Chyb DNS, certifikátu TLS nebo spojení.
Neúspěšné požadavky se opakují po 5 minutách, 30 minutách, 2 hodinách, 5 hodinách a pak každých 12 hodin, celkem až 11 pokusů. Když požadavek selže potřetí, Emailit pošle vlastníkovi workspace e-mail. Pokud endpoint selhává dál a 3 dny neproběhne žádné úspěšné doručení, webhook se vypne a vlastník dostane další e-mail.
Dokud je webhook vypnutý, nové události se pro něj do fronty nezařazují.
Řešení
-
Najděte chybu. Otevřete webhook a vyberte kartu Requests. Otevřete neúspěšný požadavek a uvidíte Failure reason, Status code a tělo odpovědi, které váš endpoint vrátil.
-
Opravte endpoint. Časté opravy:
- Použijte konečnou URL s
https://a přesnou cestou, aby nedocházelo k přesměrování. - Vracejte
200rychle a pomalou práci dělejte v úloze na pozadí, abyste zůstali pod 30 sekundami. - Opravte ověření podpisu. Viz Proč podpis webhooku nesouhlasí?
- Povolte požadavky Emailitu ve firewallu, WAF nebo ochraně proti botům.
- Použijte konečnou URL s
-
Otestujte to. Zvolte Send test, vyberte typ události a ověřte, že dialogové okno ukazuje stav
2xx. -
Znovu zapněte a odešlete. Zvolte Retry failed. Znovu zařadí do fronty všechny neúspěšné požadavky za posledních 7 dní a webhook znovu zapne. Můžete také vybrat Enable webhook, nebo zavolat Opakování neúspěšných požadavků.
-
Doplňte události z doby vypnutí. Události vytvořené v době, kdy byl webhook vypnutý, se do fronty nezařadily. Načtěte je přes Výpis událostí s filtrem podle
typeacreated_at.
Aby byla obsluha odolná, udělejte ji idempotentní pomocí pole event_id, protože opakovaná dávka může dorazit dvakrát. Viz Opakování a selhání.
Stále si nevíte rady?
Napište podpoře nebo se zeptejte na Discordu a uveďte ID webhooku (wh_…) a důvod selhání z karty Requests.