Alle vier bedeuten auf der Ebene, auf die es ankommt, dasselbe: das Gespräch kam nie weit genug, um ein Ergebnis zu haben. Chrome hat versucht, eine Verbindung zu einem Server zu öffnen, und die Verbindung wurde abgewiesen, gekappt, geschlossen oder nie beantwortet - es gibt also keine Seite, keinen Statuscode und nichts von der Website zu lesen.

Genau das unterscheidet sie von den Fehlern, mit denen man sie üblicherweise vergleicht. Ein 404 oder ein 504 heißt, dass ein Server Ihnen geantwortet hat, in HTTP, mit irgendetwas. Ein ERR_CONNECTION_ irgendwas heißt, dass der Austausch unterhalb von HTTP gescheitert ist, bevor davon überhaupt etwas passieren konnte. Chrome erfindet diese Namen selbst, weshalb sie kein bisschen wie ein Statuscode aussehen.

Die vier unterscheiden sich darin, wie es gescheitert ist, und dieser Unterschied ist der größte Teil der Diagnose.

ERR_CONNECTION_REFUSED

Etwas hat geantwortet, und was es sagte, war nein.

Die Maschine unter dieser Adresse ist erreichbar, und sie hat die Verbindung auf diesem Port aktiv zurückgewiesen. Dort lauscht nichts, oder eine Firewall weist die Verbindung sofort ab, statt sie stillschweigend zu verwerfen.

Die häufigsten Ursachen, in der Reihenfolge, in der Sie sie prüfen sollten: der Server läuft nicht; er läuft auf einem anderen Port als dem in der Adresse; er ist an 127.0.0.1 gebunden und nimmt deshalb nur Verbindungen von der eigenen Maschine an; oder Sie haben https auf einem Port angefragt, der einfaches http ausliefert.

Wenn Sie das als Entwickler gegen localhost sehen, ist es fast immer eine dieser vier Ursachen und fast nie der Browser.

ERR_CONNECTION_TIMED_OUT

Überhaupt nichts hat geantwortet.

Chrome hat Pakete ins Dunkle geschickt und gewartet. Das ist die Signatur von etwas, das Verkehr stillschweigend verwirft, statt ihn abzuweisen - eine Firewall, die auf Verwerfen statt auf Ablehnen eingestellt ist, eine Adresse, die nirgendwohin mehr führt, ein VPN, das Ihren Verkehr irgendwohin schickt, von wo aus das Ziel nicht erreichbar ist.

Das Erkennungszeichen ist das Warten. Eine Abweisung kommt sofort zurück; ein Timeout dauert so lange, wie die Geduld des Browsers reicht.

ERR_CONNECTION_RESET

Die Verbindung stand, und dann wurde sie mitten im Satz getötet.

Etwas hat ein Reset gesendet: der Server, oder häufiger etwas zwischen Ihnen und ihm. Unternehmens-Proxys, die den Verkehr inspizieren, Sicherheitssoftware auf der Maschine, eine instabile Leitung, oder ein Netzwerkgerät, das entschieden hat, dass die Verbindung nicht erlaubt war, nachdem sie bereits begonnen hatte.

Das ist derjenige der vier, der am ehesten von etwas anderem als der Website verursacht wird. Wenn er in einem Netz auftritt und in einem anderen nicht, haben Sie Ihre Antwort gefunden, ohne die Website überhaupt anzufassen.

ERR_CONNECTION_CLOSED

Dieselbe Form wie ein Reset, höflicher beendet: die Gegenseite hat die Verbindung geschlossen, während der Browser noch mehr erwartete.

In der Praxis deutet das darauf hin, dass der Server oder etwas davor auf halbem Weg aufgibt - ein Prozess, der neu startet, ein Load Balancer, der eine untätige Verbindung fallen lässt, ein Protokoll-Missverhältnis. Sie werden in dieser Familie auch ERR_CONNECTION_ABORTED sehen, was meist heißt, dass die Anfrage abgebrochen wurde, bevor sie fertig war, manchmal von der Seite selbst, die weiternavigiert.

Vier Fragen, die es in etwa einer Minute eingrenzen

Welchen der vier Sie auch haben, dieselbe Triage grenzt ihn ein. Gehen Sie sie der Reihe nach durch und hören Sie auf, sobald eine davon antwortet.

  • Funktionieren andere Websites? Nein, und das Problem ist Ihre Verbindung, nicht die Website.
  • Funktioniert es in einem privaten Fenster? Ja, und es ist eine Erweiterung, ein Cookie oder eine zwischengespeicherte Datei statt des Netzwerks.
  • Funktioniert es auf einem anderen Gerät im selben Netz? Ja, und es ist diese Maschine - ihre Sicherheitssoftware, ihre Proxy-Einstellungen, ihr VPN.
  • Funktioniert es über Mobilfunk statt über WLAN? Ja, und es ist dieses Netz, was die übliche Erklärung für ein Reset ist, das nur eine einzige Person sieht.

Zwei dieser vier Fragen schließen die Website vollständig aus, was zu wissen sich lohnt, bevor jemand einen Nachmittag damit verbringt, Serverprotokolle nach einem Fehler zu durchsuchen, der den Server nie erreicht hat.

Session Replay

Kostenlose Chrome-Erweiterung. Ein Klick auf der Seite, die sich falsch verhält, erfasst den Screenshot, die Konsole und das Netzwerkprotokoll und gibt Ihnen einen Link, den Sie ins Ticket einfügen können.

Erweiterung holen

Warum diese so schlecht gemeldet werden

Ein Verbindungsfehler erzeugt keinen HTTP-Status und oft nichts Brauchbares in der Konsole. Die Seite lädt entweder gar nicht, oder - viel schwerer zu diagnostizieren - sie lädt einwandfrei, während eine einzelne Anfrage darin auf diese Weise scheitert, sodass die Website auf eine bestimmte und unerklärliche Weise kaputt wirkt.

Der zweite Fall ist der, der als “der Speichern-Knopf tut nichts” ankommt. Kein Fehler auf dem Bildschirm, kein roter Text, nichts, was die Person Ihnen zitieren könnte. Im Netzwerk-Panel ist er offensichtlich, und er ist eine Zeile: eine Anfrage in einem fehlgeschlagenen Zustand, kein Status, und daneben ein Host.

Welcher Host das ist, zählt mehr als alles andere im Bericht. Wenn die fehlschlagenden Anfragen alle Ihre eigene Domain nennen, ist es Ihre Infrastruktur oder der Weg dorthin. Wenn sie einen Zahlungsanbieter, einen Kartendienst oder einen Font-Host nennen, verhält sich die Seite korrekt und etwas, worauf sie angewiesen ist, nicht - und die lesende Person kann die Statusseite dieses Anbieters prüfen statt Ihre.

Das Netzwerkprotokoll in einem Fehlerbericht trägt genau das, und das ist der Unterschied zwischen dieser Fehlerklasse als etwas Reproduzierbarem und als Geschichte über etwas, das am Dienstag passiert ist.

Die Kurzfassung

  • Refused: etwas hat sofort nein gesagt. Meist lauscht auf diesem Port nichts.
  • Timed out: nichts hat irgendetwas gesagt. Meist verwirft etwas den Verkehr stillschweigend.
  • Reset: die Verbindung ist im Flug gestorben. Meist das Netz dazwischen, nicht die Website.
  • Closed: die Gegenseite hat früh aufgelegt. Meist der Server oder etwas davor.

Und keiner der vier ist ein HTTP-Fehler, weshalb neben ihnen kein Statuscode auftaucht und weshalb der Server womöglich überhaupt keine Aufzeichnung des Versuchs hat.