Benutzerspezifische 502-Fehler nach dem Login – zurückgeführt auf DiscourseUpdates.has_unseen_features?

Hallo,

Ich stoße auf ein seltsames Problem mit meiner Discourse-Installation, bei dem 502-Fehler nur für ein bestimmtes Benutzerkonto (Admin) nach dem Login auftreten, während:

  • Anonyme Benutzer die Seite normal aufrufen können

  • Andere Benutzerkonten sich normal anmelden und die Seite normal nutzen können

  • Das Problem nur bei einem bestimmten Konto (Admin-Konto) auftritt


:puzzle_piece: Umgebung

  • Discourse, installiert über das offizielle Docker-Setup

  • Reverse-Proxy / CDN: ArvanCloud (ähnlich wie Cloudflare)

  • Zugriff auf das internationale Internet ist eingeschränkt / instabil (GitHub und einige externe Dienste nicht erreichbar)

  • Discourse wurde seit ca. 1 Monat nicht aktualisiert


:red_exclamation_mark: Symptome

Beim Aufrufen der Seite:

  • Wenn ich die Seite im privaten/Inkognito-Modus öffne → Seite wird normal geladen

  • Wenn ich mich mit meinem Hauptkonto anmelde → sofort 502 Bad Gateway

  • Wenn ich mich mit einem anderen Konto anmelde → alles funktioniert einwandfrei

Das Problem ist also eindeutig benutzerspezifisch und wird nach der Authentifizierung ausgelöst.


:page_facing_up: ArvanCloud (CDN) Fehlerprotokolle

Es erscheinen hauptsächlich zwei Fehler:

1. Upstream-Timeout beim Lesen des Upstreams

upstream timed out (110: Connection timed out) while reading upstream

Betroffene URLs sind meistens Assets, zum Beispiel:

  • /assets/browser-detect-*.js

  • /assets/plugins/automation-*.js

  • /assets/plugins/discourse-gamification-*.js

  • /assets/plugins/discourse-lazy-videos-*.js

2. Upstream hat die Verbindung vorzeitig geschlossen

upstream prematurely closed connection while reading response header from upstream

Zum Beispiel:

  • /stylesheets/common_theme_rtl_*.css

  • /theme-javascripts/*.js

Das CDN wartet also auf eine Antwort von Discourse, aber das Backend läuft auf einen Timeout oder schließt die Verbindung.


:magnifying_glass_tilted_left: Was ich im Backend gefunden habe

In den Rails-Stack-Traces zeigt der Fehlerpfad auf:

  • current_user_serializer.rb

  • discourse_updates.rb

  • Methode: DiscourseUpdates.has_unseen_features?

Was darauf hindeutet, dass der Absturz/Timeout beim Überprüfen von Ankündigungen neuer Funktionen für angemeldete Benutzer auftritt.

Da nur ein Benutzer betroffen ist, deutet dies stark darauf hin, dass das Problem während der benutzerspezifischen Serialisierung ausgelöst wird und nicht bei der globalen Seitendarstellung.


Jeder Hinweis wäre sehr hilfreich.
Vielen Dank.

Haben Sie es in anderen Browsern/Geräten versucht? Haben Sie versucht, die Erweiterungen Ihres Browsers zu deaktivieren?

Edit: Vielleicht habe ich Sie falsch verstanden. Lädt die Seite im Inkognito-Modus UND als angemeldeter Benutzer?

Ja, ich habe auf mehreren Geräten und Browsern getestet, und es hängt nicht mit Browser-Erweiterungen zusammen.

Was ich sehe, ist benutzerabhängig, nicht geräteabhängig:

  • Auf jedem Gerät, auf dem das Administratorkonto bereits angemeldet war, führt das sofortige Öffnen der Website zu 502 Bad Gateway.

  • Im Inkognito-/Privatmodus wird die Website normal geladen und ich kann die Anmeldeseite erreichen.

  • Von dort aus kann ich mich erfolgreich mit einem anderen (Nicht-Admin-)Konto anmelden und die Website funktioniert einwandfrei.

  • Aber wenn ich versuche, mich mit dem Administratorkonto anzumelden, erhalte ich unmittelbar nach dem Absenden von E-Mail-Adresse und Passwort durchgehend 502, und die Seite wird nie geladen.

1 „Gefällt mir“