Risoluzione dei problemi
Perché l’endpoint webhook è stato disattivato?
Emailit disattiva un webhook dopo 3 giorni di errori di consegna continui. Scopri perché le consegne non sono riuscite, riattiva l’endpoint e invia di nuovo gli eventi.
Questo articolo spiega perché Emailit smette di inviare eventi a un webhook, come trovare l’errore all’origine e come recuperare gli eventi persi.
Sintomi
- Hai ricevuto un’email da Emailit che dice che il tuo webhook non funziona, e più tardi un’altra che dice che è stato disattivato.
- Il webhook risulta disattivato in Email APIWebhooks e i nuovi eventi non arrivano più al tuo endpoint.
- La scheda Requests nella pagina del webhook elenca richieste con stato Failed e molti tentativi.
Causa
Emailit considera riuscita qualsiasi risposta 2xx. Tutto il resto conta come errore, compresi:
- Codici di stato
4xxo5xx, ad esempio da controlli della firma o da crash. - Nessuna risposta entro 30 secondi.
- Reindirizzamenti. Emailit non segue
301o302, quindi un URLhttp://che reindirizza ahttps://, o una barra finale mancante, falliscono ogni volta. - Errori DNS, di certificato TLS o di connessione.
Le richieste non riuscite vengono ritentate dopo 5 minuti, 30 minuti, 2 ore, 5 ore e poi ogni 12 ore, fino a 11 tentativi. Emailit invia un’email al proprietario del workspace quando una richiesta non riesce per la terza volta. Se l’endpoint continua a non rispondere correttamente senza nessuna consegna riuscita per 3 giorni, il webhook viene disattivato e il proprietario riceve un’altra email.
Mentre un webhook è disattivato, i nuovi eventi non vengono messi in coda per lui.
Soluzione
-
Trova l’errore. Apri il webhook e seleziona la scheda Requests. Apri una richiesta non riuscita per vedere Failure reason, Status code e il corpo della risposta restituito dal tuo endpoint.
-
Correggi l’endpoint. Correzioni comuni:
- Usa l’URL finale, con
https://e il percorso esatto, in modo che non ci siano reindirizzamenti. - Restituisci
200rapidamente e svolgi il lavoro lento in un job in background, così resti sotto i 30 secondi. - Correggi la verifica della firma. Vedi Perché la firma del webhook non corrisponde?.
- Lascia passare le richieste di Emailit nel firewall, nel WAF o nella protezione antibot.
- Usa l’URL finale, con
-
Provalo. Scegli Send test, seleziona un tipo di evento e verifica che la finestra mostri uno stato
2xx. -
Riattiva e invia di nuovo. Scegli Retry failed. Rimette in coda tutte le richieste non riuscite degli ultimi 7 giorni e riattiva il webhook. Puoi anche selezionare Enable webhook, oppure chiamare Ritenta le richieste non riuscite.
-
Recupera gli eventi del periodo di disattivazione. Gli eventi creati mentre il webhook era disattivato non sono stati messi in coda. Recuperali con Elenca gli eventi, filtrando per
typeecreated_at.
Per rendere il gestore più robusto, rendilo idempotente con il campo event_id, perché un batch ritentato può arrivare due volte. Vedi Nuovi tentativi ed errori.
Serve ancora aiuto?
Contatta il supporto o chiedi su Discord indicando l’ID del webhook (wh_…) e il motivo dell’errore mostrato nella scheda Requests.