PullMD Teil 8: Eine alte Regel – Einfach erklärt
Im letzten Teil hatte ich aufgehört mit: der Server ist fertig, aber auf der anderen Seite lässt mich keiner durch. Ich wartete.
Vier Tage lang passierte nichts.
Etwas nagte
Am Abend hatte auf der Diskussionsseite bei GitHub jemand eine ausführliche Erklärung gepostet, warum das Ticket eigentlich beendet sei. Seine Erklärung passte auf einen bestimmten Server-Typ — aber nicht auf meinen. Noch in derselben Nacht schrieb ich einen höflichen Kommentar: eure Erklärung passt nicht auf mein Setup. Könnt ihr nochmal genauer hinschauen?
Was unausgesprochen mitschwang: Wenn ihr nicht antwortet, schaue ich selbst nach.
Ich schaute selbst nach
Am nächsten Morgen habe ich die Protokolldateien von meinem Server geholt. Protokolldateien sind so etwas wie ein Gästebuch an der Haustür — jeder Besucher hinterlässt einen Eintrag.
Was die Protokolle zeigten: kein einziger Besucher war jemals bis zu meinem Server durchgekommen. Der Block passierte schon vorher — beim Türsteher, der vor meiner Website steht. Im Fachjargon heißt das WAF — Web Application Firewall. Ein Sicherheitsdienst, der vor dem eigentlichen Server steht und entscheidet, wer rein darf und wer nicht.
Die Regel, die sich selbst überlebt hatte
Die Ursache war eine Regel, die ich selbst geschrieben hatte. Vor langer Zeit. Damals wollte ich bestimmte Dienste nur aus Deutschland erreichbar machen. Die Regel war simpel: wer nicht aus Deutschland kommt, wird abgewiesen.
Das Problem: die Dienste, für die ich das eingerichtet hatte, nutze ich gar nicht mehr. Aber die Regel lief still weiter. Als ich meinen Markdown-Service unter demselben Schirm aufgehängt hatte, hat sie auch dessen Besucher abgewiesen. Claude versucht, meinen Server aus den USA zu erreichen — und die USA sind nicht Deutschland.
Die Regel hat genau das getan, wofür ich sie geschrieben hatte. Nur der Rest hatte sich verändert.
Ich hatte nicht vergessen, wofür die Regel da war. Ich hatte vergessen, dass sie noch lief.
Die Korrektur
Ich habe die Regel angepasst. Dann habe ich auf der GitHub-Diskussion einen Korrektur-Kommentar geschrieben — öffentlich und sachlich:
“Update — happy to confirm the fix worked on my end. … For the record: the actual culprit on my side was a country-based GeoBlocking custom rule I had set up long ago for an unrelated service —
(ip.geoip.country ne "DE")— which I’d completely forgotten about.”„Update — der Fix hat bei mir funktioniert. Der eigentliche Verursacher war eine alte Blockier-Regel, die ich völlig vergessen hatte.“
Ich habe den Fehler offen eingestanden — damit der nächste mit demselben Problem ihn beim Suchen findet.
Und dann ging’s Schlag auf Schlag
Sobald der Stau aufgelöst war, kamen an einem einzigen Tag drei neue Versionen heraus.
Die erste war schon vorher fertig gewesen: ein System, das sich merkt, wie bestimmte Websites am besten verarbeitet werden. Wie eine Rezeptsammlung — für jede schwierige Website ein eigenes Rezept. Die Idee kam von einem Nutzer aus der Reddit-Diskussion.
Die zweite war der Anmelde-Mechanismus aus dem letzten Teil — fertig im Regal, weil die Tür auf der anderen Seite nicht aufging.
Die dritte war ein kleines Feature, um das ein Nutzer gebeten hatte: den Text nicht nur roh, sondern auch hübsch formatiert anzeigen. An einem Nachmittag erledigt. Bei einem nett gestellten Wunsch lohnt sich der Aufwand. Für den Menschen auf der anderen Seite macht es den Unterschied zwischen „jemand hat das gelesen“ und „der Bot hat geantwortet“.
Was bleibt
Die zehn Tage Stillstand hatten nichts mit einer fremden Blockade zu tun. Es war meine eigene Regel — geschrieben für einen Zweck, der längst weggefallen war. Sie hat still weitergearbeitet und dabei neuen Verkehr abgefangen, der nichts mit dem ursprünglichen Zweck zu tun hatte.
So altert Technik, wenn niemand hinschaut.
Die Lektion: wenn etwas nach einem Problem auf der anderen Seite aussieht, erst die eigene Seite prüfen.
Teil 8 von 9 der PullMD Serie.
← PullMD Teil 7: Spec-Compliant ist nicht genug | PullMD Teil 9: Microsofts MarkItDown integriert — und drei Teile wieder rausgerissen →