Solicitudes de desplazamiento infinito después de la eliminación del tema

Continuando la discusión de Permitir a los miembros eliminar etiquetas/categorías restringidas de las preferencias de seguimiento:

Resumen

Cuando un usuario está viendo activamente un tema que posteriormente se elimina, el desplazamiento continuo (hacia arriba o hacia abajo) activa un bucle infinito de llamadas a la API posts.json. Estas llamadas devuelven consistentemente un error 403 Forbidden, pero la aplicación no reconoce la eliminación ni deja de intentar cargar contenido inexistente, lo que genera actividad de red persistente en segundo plano y una experiencia de usuario rota.

Pasos para reproducir

  1. Preparación (Usuario Administrador/Moderador):
    • Inicia sesión como un usuario con privilegios para eliminar temas (por ejemplo, Administrador o Moderador).
    • Crea un nuevo tema con algunas publicaciones para asegurarte de que haya contenido para desplazarse.
    • Ten a mano la URL de la página de este tema.
  2. Experiencia del usuario (Usuario normal):
    • Inicia sesión como un usuario normal (sin privilegios de eliminación).
    • Abre una nueva pestaña o ventana del navegador.
    • Navega al tema creado en el Paso 1.
    • Abre las herramientas de desarrollador de tu navegador y ve a la pestaña “Network” (Red). Borra cualquier solicitud existente para una vista limpia.
  3. Eliminación e interacción simultáneas:
    • Mientras el usuario normal está en la página del tema (del Paso 2), utiliza la cuenta de Administrador/Moderador (del Paso 1) para eliminar el tema.
    • Inmediatamente después de que se elimine el tema, el usuario normal intenta desplazarse hacia arriba o hacia abajo en la página del tema ahora eliminado.
  4. Observar:
    • En la pestaña “Network” (Red) del navegador del usuario normal, observa las solicitudes GET continuas que se envían a https://discourse-url/t/xxxxx/posts.json? (donde xxxxx es el ID del tema eliminado).
    • Observa que todas estas solicitudes devuelven consistentemente un código de estado HTTP 403 Forbidden.
    • La aplicación no muestra ningún mensaje que indique que el tema ha sido eliminado, ni deja de enviar estas solicitudes de desplazamiento fallidas.

Consecuencias potenciales

  • En mi comunidad, usamos Cloudflare para prevenir ciberataques, y este error provocó que algunos usuarios hicieran demasiadas solicitudes y fueran limitados en su tasa.
1 me gusta

¿Cuál es tu versión actual de Discourse?

Hubo un informe similar recientemente que resultó en una solución:

3 Me gusta