Risoluzione dei problemi
Soluzioni ai problemi più comuni.
Non ricevo consegne di webhook
1. Controlla prima i tuoi registri.
Vai su App → Registri. Trova il monitor pertinente e controlla lo stato della consegna. Se mostra failed, espandi la voce per visualizzare il codice di stato HTTP restituito dal tuo endpoint.
2. L'endpoint ha restituito uno stato diverso da 2xx o è scaduto.
DiffHook considera una consegna riuscita solo quando il tuo endpoint restituisce 2xx entro 10 secondi. Cause comuni:
- Restituzione di
500a causa di un errore nel tuo gestore - Elaborazione lenta prima di rispondere: sposta l'elaborazione in modo asincrono e restituisci immediatamente
200 - Firewall o WAF che bloccano l'intervallo IP di DiffHook
3. L'URL dell'endpoint è sbagliato.
Ricontrolla l'URL del webhook sul monitor. Assicurati che sia raggiungibile pubblicamente (non localhost).
4. Sono stati utilizzati tutti i tentativi automatici.
DiffHook tenta una volta immediatamente, poi fino a altre 10 volte con ritardi esponenziali in minuti (1, 2, 4, … fino a 512 minuti tra i tentativi). Quando ogni tentativo fallisce, la consegna si interrompe; la voce nei registri mostra failed o exhausted. Correggi il tuo endpoint, quindi utilizza Attiva ora sul monitor per riattivare.
Un monitor si è attivato ma non ho ricevuto alcuna notifica
Verifica che almeno un canale di notifica sia configurato e connesso:
- App → Impostazioni → Integrazioni: verifica che Slack/Discord/Telegram/E-mail siano connessi
- Utilizzare il pulsante Test per verificare che il canale funzioni indipendentemente dagli eventi di monitoraggio
Il mio monitor non rileva le modifiche che vedo sulla pagina
Contenuto visualizzato in JavaScript. Se la pagina carica contenuto tramite JavaScript (React, Vue, SPA), l'HTML statico recuperato da DiffHook non lo includerà. Abilita il rendering JS sul monitor per utilizzare un browser headless.
Selettore CSS troppo stretto o rotto.
Se hai specificato css_selector, verifica che corrisponda ancora a un elemento nella pagina. Riprogettazione dei siti: i selettori possono diventare obsoleti. Rimuovere temporaneamente il selettore per confermare che DiffHook vede la modifica, quindi perfezionare.
La modifica è all'interno del filtro differenziale. DiffHook rimuove il rumore dinamico (timestamp, aree annunci, token di sessione). Se il contenuto di destinazione corrisponde a un modello di filtro, potrebbe essere eliminato. Contatta l'assistenza con l'URL e possiamo ispezionare il differenziale grezzo.
Tremolio nel polling. Controlla l'incendio entro una finestra di ±30 secondi intorno all'orario programmato. Una modifica apparsa e scomparsa nell'intervallo di polling non verrà rilevata.
Ricevo troppi avvisi di falsi positivi
Utilizza un selettore CSS. Applica il monitor solo ai contenuti che ti interessano:
{ "css_selector": "#pricing-table" }
Questo filtra i banner dei cookie, gli aggiornamenti degli annunci, le modifiche al timestamp e altri rumori.
Aumentare l'intervallo. Se una pagina cambia frequentemente ma ti interessano solo le modifiche significative, un intervallo più lungo riduce il rumore.
Verifica la presenza di contenuti dinamici. Alcuni siti incorporano token di sessione o nonce nel corpo della pagina. Questi cambiano ad ogni carico e attiveranno sempre un differenziale. Utilizza un selettore CSS per escludere l'elemento interessato.
Il mio monitor appare in pausa inaspettatamente
I monitor vengono messi automaticamente in pausa in due scenari:
- Declassamento del piano: hai ridotto il tuo piano e hai più monitor attivi rispetto a quanto consentito dal nuovo limite. Vai su App → Monitor, riprendi i monitor che desideri conservare ed elimina o metti in pausa il resto.
- Account sospeso: un pagamento non riuscito ha bloccato il tuo account. Risolvi il pagamento in App → Fatturazione per riattivare.
Una consegna è stata inviata due volte
Possono verificarsi consegne duplicate in rari scenari di errore di rete (la richiesta è stata consegnata ma la conferma è andata persa, causando un nuovo tentativo). Questo è il comportamento previsto.
Proteggi il tuo gestore con una chiave di deduplicazione utilizzando monitor_id + triggered_at:
const key = `${body.monitor_id}:${body.triggered_at}`
if (await redis.get(key)) return
await redis.set(key, '1', 'EX', 86400)
Vedi Best practice per ulteriori informazioni sull'idempotenza.
Non riesco a verificare la firma del webhook
- Assicurati di calcolare l'HMAC sui byte del corpo della richiesta non elaborata, non sul JSON analizzato
- Il segreto della firma si trova in App → Impostazioni → Chiavi API
- Dopo aver ruotato il segreto, aggiorna la distribuzione prima che il vecchio segreto venga revocato
Vedi Verifica le firme per esempi completi di implementazione.
Ancora bloccato?
Se nessuna delle soluzioni precedenti risolve il problema, invia un'e-mail a support@diffhook.com con:
- Il tuo ID team (visibile nell'URL della dashboard)
- L'ID o l'URL del monitor
- L'ID della voce di registro se una consegna non è riuscita
- Una descrizione del comportamento previsto rispetto a quello effettivo