Error 418: NPM liefert Fehler "Ich bin eine Teekanne" und bricht ab

Über mehrere Stunden lieferte die Registry des Node.js-Paketdienstes NPM ihren Nutzern unter bestimmten Umständen den eigentlich als Scherz gedachten HTTP Statuscode 418 "I am a Teapot" , also "Ich bin eine Teekanne" . Der Dienst konnte zudem nicht wie vorgesehen genutzt werden, wie aus dem Fehlerbericht bei Github(öffnet im neuen Fenster) hervorgeht, bei dem sich sehr viele betroffene Nutzer zu Wort gemeldet haben. Die Probleme scheinen inzwischen behoben zu sein.
Der Erklärung zufolge ist der Fehler aufgetreten, wenn die Portnummer 443 an den Host-Header angehängt worden ist und der Zugriff auf die NPM-Registry nicht direkt, sondern über einen Proxy-Dienst erfolgte. Diese Umstände wiederum scheinen den Server-Dienst der NPM-Registry derart verwirrt zu haben, dass dieser schlicht mit dem erwähnten HTTP Statuscode 418 geantwortet hat.
Auf Grund des detaillierten Fehlerberichts und der Analyse eines Nutzers konnte der Fehler schnell behoben werden. Die genauen Ursachen, warum die NPM-Registry auf diese Art und Weise reagiert hat, ist derzeit aber nicht bekannt. Auch stellt sich die Frage, warum die Betreiber der NPM-Registry den HTTP Statuscode 418 überhaupt umgesetzt haben, denn eine sinnvolle Hilfe lässt sich damit nicht erreichen, wie der aktuelle Fall offensichtlich zeigt.
Vom Aprilscherz zum Community-Liebling
Der vor 20 Jahren als Aprilscherz eingeführte HTTP Statuscode 418 war eigentlich nie für eine ernsthafte Verwendung gedacht gewesen. Dennoch entwickelte dieser spezielle Statuscode ein Eigenleben und erfreute sich in der breiteren Entwicklercommunity offenbar großer Beliebtheit. Immerhin haben Projekte wie ASP.net, Go oder auch Node.js ihn aktiv implementiert.
Der Versuch von Mark Nottingham, dem Leiter der HTTP-Arbeitsgruppe bei der Internet Engineering Task Force (IETF), die Verwendung des Statuscodes aus den Implementierungen zu entfernen, scheiterte aber an der Community . Nottingham schlug daraufhin vor, den Statuscode offiziell zu reservieren. Durchgesetzt hat sich das aber noch nicht(öffnet im neuen Fenster) .



