Errores 502 específicos del usuario después del inicio de sesión, ¿trazados a DiscourseUpdates.has_unseen_features?

Hola,

Estoy experimentando un problema extraño con mi Discourse donde los errores 502 ocurren solo para una cuenta de usuario específica (administrador) después de iniciar sesión, mientras que:

  • Los usuarios anónimos pueden acceder al sitio normalmente

  • Otras cuentas de usuario pueden iniciar sesión y usar el sitio normalmente

  • El problema solo aparece para una cuenta específica (cuenta de administrador)


:puzzle_piece: Entorno

  • Discourse instalado a través de la configuración oficial de Docker

  • Proxy inverso / CDN: ArvanCloud (similar a Cloudflare)

  • El acceso a Internet internacional está restringido / inestable (GitHub y algunos servicios externos no son accesibles)

  • Discourse no se ha actualizado durante ~1 mes


:red_exclamation_mark: Síntomas

Al acceder al sitio:

  • Si abro el sitio en modo privado/incógnito → el sitio se carga bien

  • Si inicio sesión con mi cuenta principal → inmediatamente obtengo 502 Bad Gateway

  • Si inicio sesión con otra cuenta → todo funciona bien

Por lo tanto, el problema es claramente específico del usuario y se activa después de la autenticación.


:page_facing_up: Registros de errores de CDN (ArvanCloud)

Aparecen dos errores principales:

1. Tiempo de espera agotado de upstream al leer upstream

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

Las URL afectadas son principalmente activos, por ejemplo:

  • /assets/browser-detect-*.js

  • /assets/plugins/automation-*.js

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

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

2. Conexión cerrada prematuramente por upstream

upstream prematurely closed connection while reading response header from upstream

Por ejemplo:

  • /stylesheets/common_theme_rtl_*.css

  • /theme-javascripts/*.js

Entonces, el CDN está esperando una respuesta de Discourse, pero el backend se agota el tiempo de espera o cierra la conexión.


:magnifying_glass_tilted_left: Lo que encontré en el backend

En los rastreos de pila de Rails, la ruta del error apunta a:

  • current_user_serializer.rb

  • discourse_updates.rb

  • método: DiscourseUpdates.has_unseen_features?

Lo que sugiere que el bloqueo/tiempo de espera se produce mientras se comprueban los anuncios de nuevas funciones para los usuarios que han iniciado sesión.

Dado que solo un usuario se ve afectado, esto sugiere fuertemente que el problema se activa durante la serialización específica del usuario, no durante la representación global del sitio.


Agradecería cualquier orientación.
Muchas gracias.

¿Probaste en otros navegadores/dispositivos? ¿Intentaste desactivar las extensiones de tu navegador?

Edición: Quizás entendí mal. ¿El sitio carga en modo incógnito Y habiendo iniciado sesión como usuario?

Sí, probé en múltiples dispositivos y navegadores, y no está relacionado con extensiones del navegador.

Lo que estoy viendo es específico del usuario, no específico del dispositivo:

  • En cualquier dispositivo donde la cuenta de administrador ya estaba iniciada sesión, abrir el sitio resulta inmediatamente en 502 Bad Gateway.

  • En modo incógnito/privado, el sitio se carga normalmente y puedo acceder a la página de inicio de sesión.

  • Desde allí, puedo iniciar sesión con éxito con otra cuenta (que no es de administrador) y el sitio funciona bien.

  • Pero cuando intento iniciar sesión con la cuenta de administrador, justo después de enviar el correo electrónico y la contraseña, obtengo consistentemente 502, y la página nunca se carga.

1 me gusta