Errori 502 specifici dell'utente dopo il login — ricondotti a DiscourseUpdates.has_unseen_features?

Ciao,
Sto riscontrando uno strano problema con il mio Discourse dove gli errori 502 si verificano solo per un account utente specifico (admin) dopo l’accesso, mentre:

  • Gli utenti anonimi possono accedere al sito normalmente

  • Altri account utente possono accedere e utilizzare il sito normalmente

  • Il problema si presenta solo per un account specifico (account admin)


:puzzle_piece: Ambiente

  • Discourse installato tramite configurazione Docker ufficiale

  • Reverse proxy / CDN: ArvanCloud (simile a Cloudflare)

  • L’accesso a Internet internazionale è ristretto / instabile (GitHub e alcuni servizi esterni non raggiungibili)

  • Discourse non è stato aggiornato da circa 1 mese


:red_exclamation_mark: Sintomi

Quando si accede al sito:

  • Se apro il sito in modalità privata/incognito → il sito viene caricato correttamente

  • Se accedo con il mio account principale → ricevo immediatamente 502 Bad Gateway

  • Se accedo con un altro account → tutto funziona bene

Quindi il problema è chiaramente specifico dell’utente e attivato dopo l’autenticazione.


:page_facing_up: Log degli errori del CDN (ArvanCloud)

Appaiono due errori principali:

1. Timeout dell’upstream durante la lettura dell’upstream

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

Gli URL interessati sono principalmente asset, ad esempio:

  • /assets/browser-detect-*.js

  • /assets/plugins/automation-*.js

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

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

2. Connessione chiusa prematuramente dall’upstream

upstream prematurely closed connection while reading response header from upstream

Ad esempio:

  • /stylesheets/common_theme_rtl_*.css

  • /theme-javascripts/*.js

Quindi il CDN attende una risposta da Discourse, ma il backend va in timeout o chiude la connessione.


:magnifying_glass_tilted_left: Cosa ho trovato sul backend

Nelle tracce dello stack di Rails, il percorso dell’errore punta a:

  • current_user_serializer.rb

  • discourse_updates.rb

  • metodo: DiscourseUpdates.has_unseen_features?

Il che suggerisce che il crash/timeout avviene durante il controllo degli annunci di nuove funzionalità per gli utenti connessi.

Dato che è interessato solo un utente, questo suggerisce fortemente che il problema è attivato durante la serializzazione specifica dell’utente, non il rendering globale del sito.


Qualsiasi guida sarebbe apprezzata.
Grazie mille.

Hai provato su altri browser/dispositivi? Hai provato a disattivare le estensioni del tuo browser?

Modifica: Forse ho capito male. Il sito si carica in modalità incognito E con l’accesso effettuato come utente?

Sì, ho testato su più dispositivi e browser, e non è correlato alle estensioni del browser.

Quello che sto riscontrando è specifico dell’utente, non specifico del dispositivo:

  • Su qualsiasi dispositivo in cui l’account amministratore era già connesso, l’apertura del sito comporta immediatamente un 502 Bad Gateway.

  • In modalità di navigazione in incognito/privata, il sito si carica normalmente e riesco a raggiungere la pagina di accesso.

  • Da lì, posso accedere con successo con un altro account (non amministratore) e il sito funziona correttamente.

  • Ma quando tento di accedere con l’account amministratore, subito dopo aver inviato email e password, ottengo costantemente 502 e la pagina non si carica mai.

1 Mi Piace