Ein Admin-Benutzer hat nach einem Update von Discourse einen seltsamen Fehler. Der Fehler tritt auf, wenn der Benutzer auf die Zurück-Taste oder das Site-Logo klickt. Es scheint, als würde JavaScript ausgelöst, um zum Root/Home der Site zu navigieren, stattdessen werden jedoch folgende Fehler ausgelöst:
Ich habe auch festgestellt, dass dies bei Klicks auf alle Navigationselemente passiert, z. B. beim Versuch, zu /admin zu navigieren.
Habt ihr Ideen, wie man das weiter nachverfolgen kann? Ich sehe keinen Fehler in production.log oder anderswo, daher war das eine echte Rätselraten-Aufgabe, da es scheinbar an JS gebunden ist.
Bisher bin ich beim weiteren Debuggen immer wieder an Sackgassen geraten. Ich vermute, dass der „Sicherheitsmodus" JavaScript aufgrund dessen nicht vollständig deaktiviert… Gibt es einen weiteren Schritt, um JavaScript für Tests vollständig außer Kraft zu setzen?
Ist deine Seite öffentlich zugänglich? Falls ja, könntest du vielleicht einen Link teilen? (Eine PN ist in Ordnung, falls du den Link nicht öffentlich posten möchtest.)
Danke für den Link, @mreach. Von hier aus sehe ich keine offensichtlichen Probleme.
Du hast erwähnt, dass dies nur einen Benutzer auf der Seite betrifft. Weißt du, ob das Problem auf einen einzigen Browser oder ein einziges Gerät beschränkt ist? Oder tritt es bei diesem Benutzer auch auf, wenn er sich über ein anderes Gerät anmeldet?
Wenn es nur ein Browser/ein Gerät ist, könnte dies auf ein Browser-Plugin (z. B. einen Werbeblocker) hindeuten, das den Code von Discourse beeinträchtigt.
Wenn es in jedem Browser auftritt, ist das etwas schwieriger. Hast du auf deinem Forum Drittanbieter-Plugins installiert? Es wäre auch interessant zu wissen, was der Benutzer für seine „Standard-Startseite" konfiguriert hat (zu finden in den Discourse-„Oberflächen"-Einstellungen).
Danke – ja, ich habe im Wesentlichen dieselben Gedanken. Ich habe sie gebeten, alle Erweiterungen zu deaktivieren und alle Browserdaten zu löschen. Gerade hat mir ein weiterer Nutzer dasselbe Problem gemeldet… Und beide nutzen Chrome. Ich habe sie gebeten, Firefox und Brave auszuprobieren, und beide sagten, dass es dort funktioniert, aber nichts, was sie tun, scheint Chrome wieder „richtig" für sie zu funktionieren. Ich habe sie erneut nach den Ergebnissen im Inkognito-Modus gefragt, und beide berichteten, dass Inkognito funktioniert. All dies geschah nach dem letzten Discourse-Update, also scheint es, als ob etwas im JS irgendwie nicht bereinigt wird… Was ich wirklich nicht verstehe, wie das möglich sein könnte.
Ich habe sie gefragt, was sie als Startseite konfiguriert haben… Ich gebe dir Bescheid. Das ist eine sehr gute Idee, die mir noch nicht in den Sinn gekommen ist…
Der Benutzer, der das Problem hat, hat „Kategorien" als Startseite festgelegt:
Wenn sie es auf eine andere Einstellung ändern, z. B. „Neueste", können sie die Startseite laden, indem sie auf das Site-Logo klicken UND den „Zurück"-Pfeil im Browser verwenden. Wenn sie zurück auf „Kategorien" statt „Neueste" wechseln, kehrt das Problem/die Fehlermeldung zurück.
Dieser Benutzer ist zudem ein Administrator, und wenn er/sie auf das Hamburger-Symbol oben rechts klickt und „Admin" auswählt, tritt ebenfalls der oben gemeldete Fehler auf – selbst wenn die Startseite auf „Neueste" statt „Kategorien" geändert wurde.
Das ist natürlich neue Information, aber aus meiner Perspektive nicht wirklich hilfreich. Hm.
Haben Sie die Möglichkeit, weitere Details zu diesen Fehlern zu erhalten? Sie sollten alle erweiterbar sein und hoffentlich etwas mehr Informationen zum Fehler enthalten.
Es könnte hilfreich sein zu wissen, was in den ... dort steht. Wenn du auf das kleine Dreieck links neben dem Log klickst, sollte es sich erweitern und weitere Informationen anzeigen. Ein Kopieren/Einfügen oder ein Screenshot davon könnte helfen.
Außerdem: Siehst du serverseitige Fehler (unter /logs)? Und verwendest du die neueste Version von Discourse?
Ich vermute mal, dass Ihre Website zum Zeitpunkt des Fehlers nicht absichtlich gewartet wurde. In diesem Fall muss etwas mit der Proxy-Implementierung oder -Konfiguration nicht stimmen. Um das auszuschließen, können Sie Discourse direkt über Port 80/443 verfügbar machen? (entsprechend unseren Standard-Installationsanweisungen)
Natürlich ist es möglich, dass ein Fehler in Discourse dazu führt, dass der Proxy diese Meldung anzeigt. Ohne zu wissen, was Discourse zurückgegeben hat, ist eine Diagnose jedoch schwierig. Vielleicht protokolliert Ihr Proxy die Antworten des Upstream-Discourse?