Fehlerbehebung
Lösungen für die häufigsten Probleme.
Ich erhalte keine Webhook-Lieferungen
1. Überprüfen Sie zuerst Ihre Protokolle.
Gehen Sie zu App → Protokolle. Suchen Sie den entsprechenden Monitor und überprüfen Sie den Lieferstatus. Wenn failed angezeigt wird, erweitern Sie den Eintrag, um den HTTP-Statuscode anzuzeigen, den Ihr Endpunkt zurückgegeben hat.
2. Ihr Endpunkt hat einen Nicht-2xx-Status zurückgegeben oder es ist eine Zeitüberschreitung aufgetreten.
DiffHook betrachtet eine Zustellung nur dann als erfolgreich, wenn Ihr Endpunkt innerhalb von 10 Sekunden 2xx zurückgibt. Häufige Ursachen:
- Aufgrund eines Fehlers in Ihrem Handler wird
500zurückgegeben - Langsame Verarbeitung vor Reaktion – Verschieben Sie die Verarbeitung asynchron und geben Sie sofort
200zurück - Firewall oder WAF blockieren den IP-Bereich von DiffHook
3. Ihre Endpunkt-URL ist falsch.
Überprüfen Sie die Webhook-URL erneut auf dem Monitor. Stellen Sie sicher, dass es öffentlich erreichbar ist (nicht localhost).
4. Es wurden alle automatischen Wiederholungsversuche verwendet.
DiffHook versucht es einmal sofort, dann bis zu 10 weitere Male mit exponentiellen Verzögerungen in Minuten (1, 2, 4, … bis zu 512 Minuten zwischen den Versuchen). Wenn jeder Versuch fehlschlägt, stoppt die Lieferung; Der Eintrag in den Protokollen zeigt failed oder exhausted an. Reparieren Sie Ihren Endpunkt und verwenden Sie dann Jetzt auslösen auf dem Monitor, um erneut auszulösen.
Ein Monitor wurde ausgelöst, aber ich erhielt keine Benachrichtigung
Überprüfen Sie, ob mindestens ein Benachrichtigungskanal konfiguriert und verbunden ist:
- App → Einstellungen → Integrationen – Überprüfen Sie, ob Slack/Discord/Telegram/Email verbunden ist
- Verwenden Sie die Schaltfläche Test, um zu bestätigen, dass der Kanal unabhängig von Monitorereignissen funktioniert
Mein Monitor erkennt keine Änderungen, die ich auf der Seite sehen kann
Mit JavaScript gerenderter Inhalt. Wenn die Seite Inhalte über JavaScript (React, Vue, SPAs) lädt, wird der von DiffHook abgerufene statische HTML-Code diese nicht enthalten. Aktivieren Sie JS-Rendering auf dem Monitor, um einen Headless-Browser zu verwenden.
CSS-Selektor zu schmal oder defekt.
Wenn Sie ein css_selector angegeben haben, überprüfen Sie, ob es immer noch mit einem Element auf der Seite übereinstimmt. Neugestaltung von Websites – Selektoren können veraltet sein. Entfernen Sie den Selektor vorübergehend, um sicherzustellen, dass DiffHook die Änderung überhaupt sieht, und verfeinern Sie ihn dann.
Änderung erfolgt innerhalb des Diff-Filters. DiffHook entfernt dynamisches Rauschen (Zeitstempel, Werbeflächen, Sitzungstoken). Wenn Ihr Zielinhalt einem Filtermuster entspricht, wird er möglicherweise unterdrückt. Kontaktieren Sie den Support mit der URL und wir können den Rohunterschied überprüfen.
Polling-Jitter. Überprüft das Feuer innerhalb eines Zeitfensters von ±30 Sekunden um die geplante Zeit herum. Eine Änderung, die innerhalb Ihres Abfrageintervalls aufgetreten ist und wieder verschwunden ist, wird nicht erkannt.
Ich erhalte zu viele falsch positive Warnungen
Verwenden Sie einen CSS-Selektor. Richten Sie den Monitor nur auf die Inhalte ein, die Sie interessieren:
{ "css_selector": "#pricing-table" }
Dadurch werden Cookie-Banner, Anzeigenaktualisierungen, Zeitstempeländerungen und andere Störungen herausgefiltert.
Erhöhen Sie das Intervall. Wenn sich eine Seite häufig ändert, Sie sich aber nur für sinnvolle Änderungen interessieren, verringert ein längeres Intervall den Lärm.
Auf dynamischen Inhalt prüfen. Einige Websites betten Sitzungstoken oder Nonces in den Seitentext ein. Diese ändern sich bei jedem Ladevorgang und lösen immer einen Diff aus. Verwenden Sie einen CSS-Selektor, um das betroffene Element auszuschließen.
Mein Monitor zeigt unerwartet eine Pause an
Monitore werden in zwei Szenarien automatisch angehalten:
- Plan-Downgrade – Sie haben Ihren Plan reduziert und verfügen über mehr aktive Monitore, als das neue Limit zulässt. Gehen Sie zu App → Monitore, setzen Sie die Monitore fort, die Sie behalten möchten, und löschen oder pausieren Sie den Rest.
- Konto gesperrt – Aufgrund einer fehlgeschlagenen Zahlung wurde Ihr Konto gesperrt. Lösen Sie die Zahlung in App → Abrechnung auf, um sie erneut zu aktivieren.
Eine Lieferung wurde zweimal verschickt
Bei seltenen Netzwerkausfällen kann es zu doppelten Zustellungen kommen (die Anfrage wurde zugestellt, aber die Bestätigung ging verloren, was zu einem erneuten Versuch führte). Dies ist das erwartete Verhalten.
Schützen Sie Ihren Handler mit einem Deduplizierungsschlüssel mithilfe von 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)
Weitere Informationen zur Idempotenz finden Sie unter Best Practices.
Ich kann die Webhook-Signatur nicht überprüfen
- Stellen Sie sicher, dass Sie den HMAC über die unformatierten Bytes des Anforderungstexts berechnen, nicht über den geparsten JSON
- Das Signaturgeheimnis befindet sich unter App → Einstellungen → API-Schlüssel
- Aktualisieren Sie nach dem Rotieren Ihres Geheimnisses Ihre Bereitstellung, bevor das alte Geheimnis widerrufen wird
Vollständige Implementierungsbeispiele finden Sie unter Signaturen verifizieren.
Stecken Sie immer noch fest?
Wenn keine der oben genannten Maßnahmen Ihr Problem löst, senden Sie eine E-Mail an support@diffhook.com mit:
- Ihre Team-ID (sichtbar in der Dashboard-URL)
- Die Monitor-ID oder URL
- Die Protokolleintrags-ID, wenn eine Zustellung fehlgeschlagen ist
- Eine Beschreibung des erwarteten im Vergleich zum tatsächlichen Verhalten