Erreurs 502 spécifiques à l'utilisateur après la connexion — tracées à DiscourseUpdates.has_unseen_features?

Bonjour,

Je rencontre un problème étrange avec mon Discourse où les erreurs 502 ne se produisent que pour un compte utilisateur spécifique (administrateur) après la connexion, alors que :

  • Les utilisateurs anonymes peuvent accéder au site normalement

  • D’autres comptes utilisateurs peuvent se connecter et utiliser le site normalement

  • Le problème n’apparaît que pour un compte spécifique (compte administrateur)


:puzzle_piece: Environnement

  • Discourse installé via la configuration Docker officielle

  • Proxy inverse / CDN : ArvanCloud (similaire à Cloudflare)

  • L’accès à Internet international est restreint / instable (GitHub et certains services externes non accessibles)

  • Discourse n’a pas été mis à jour depuis environ 1 mois


:red_exclamation_mark: Symptômes

Lors de l’accès au site :

  • Si j’ouvre le site en mode privé/incognito → le site se charge correctement

  • Si je me connecte avec mon compte principal → j’obtiens immédiatement une erreur 502 Bad Gateway

  • Si je me connecte avec un autre compte → tout fonctionne bien

Le problème est donc clairement spécifique à l’utilisateur et déclenché après l’authentification.


:page_facing_up: Journaux d’erreurs du CDN (ArvanCloud)

Deux erreurs principales apparaissent :

1. Délai d’attente de la connexion en amont lors de la lecture de l’amont (Upstream timeout while reading upstream)

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

Les URL affectées sont principalement des assets, par exemple :

  • /assets/browser-detect-*.js

  • /assets/plugins/automation-*.js

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

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

2. Connexion fermée prématurément par l’amont (Upstream prematurely closed connection)

upstream prematurely closed connection while reading response header from upstream

Par exemple :

  • /stylesheets/common_theme_rtl_*.css

  • /theme-javascripts/*.js

Le CDN attend donc une réponse de Discourse, mais le backend expire ou ferme la connexion.


:magnifying_glass_tilted_left: Ce que j’ai trouvé sur le backend

Dans les traces de pile Rails, le chemin de l’erreur pointe vers :

  • current_user_serializer.rb

  • discourse_updates.rb

  • méthode : DiscourseUpdates.has_unseen_features?

Ce qui suggère que le crash/timeout se produit lors de la vérification des annonces de nouvelles fonctionnalités pour les utilisateurs connectés.

Puisque seul un utilisateur est affecté, cela suggère fortement que le problème est déclenché pendant la sérialisation spécifique à l’utilisateur, et non lors du rendu global du site.


Toute aide serait appréciée.
Merci beaucoup.

Avez-vous essayé sur d’autres navigateurs/appareils ? Avez-vous essayé de désactiver les extensions de votre navigateur ?

Edit : Peut-être que j’ai mal compris. Le site se charge-t-il en mode incognito ET lorsque vous êtes connecté en tant qu’utilisateur ?

Oui, j’ai testé sur plusieurs appareils et navigateurs, et cela n’est pas lié aux extensions de navigateur.

Ce que je constate est spécifique à l’utilisateur, pas à l’appareil :

  • Sur tout appareil où le compte administrateur était déjà connecté, l’ouverture du site entraîne immédiatement une erreur 502 Bad Gateway.

  • En mode incognito/privé, le site se charge normalement et je peux atteindre la page de connexion.

  • À partir de là, je peux me connecter avec succès avec un autre compte (non administrateur) et le site fonctionne bien.

  • Mais lorsque j’essaie de me connecter avec le compte administrateur, juste après avoir soumis l’e-mail et le mot de passe, j’obtiens systématiquement 502, et la page ne se charge jamais.

1 « J'aime »