Demandes de défilement infini après suppression de sujet

Continuant la discussion de Permettre aux membres de supprimer les balises / catégories restreintes des préférences de suivi :

Vue d’ensemble

Lorsqu’un utilisateur visualise activement un sujet qui est ensuite supprimé, le défilement continu (vers le haut ou vers le bas) déclenche une boucle infinie d’appels API posts.json. Ces appels renvoient systématiquement une erreur 403 Forbidden, mais l’application ne reconnaît pas la suppression et continue de tenter de charger du contenu inexistant, ce qui entraîne une activité réseau constante en arrière-plan et une expérience utilisateur dégradée.

Étapes pour reproduire

  1. Préparation (Utilisateur Administrateur/Modérateur) :
    • Connectez-vous en tant qu’utilisateur disposant des privilèges de suppression de sujet (par exemple, Administrateur ou Modérateur).
    • Créez un nouveau sujet avec quelques messages pour vous assurer qu’il y a du contenu à faire défiler.
    • Gardez l’URL de la page de ce sujet à portée de main.
  2. Expérience utilisateur (Utilisateur régulier) :
    • Connectez-vous en tant qu’utilisateur régulier (sans privilèges de suppression).
    • Ouvrez un nouvel onglet ou une nouvelle fenêtre de navigateur.
    • Accédez au sujet créé à l’étape 1.
    • Ouvrez les outils de développement de votre navigateur et accédez à l’onglet « Réseau ». Effacez les requêtes existantes pour une vue claire.
  3. Suppression et interaction simultanées :
    • Pendant que l’utilisateur régulier est sur la page du sujet (de l’étape 2), utilisez le compte Administrateur/Modérateur (de l’étape 1) pour supprimer le sujet.
    • Immédiatement après la suppression du sujet, l’utilisateur régulier tente de faire défiler vers le haut ou vers le bas sur la page du sujet maintenant supprimé.
  4. Observer :
    • Dans l’onglet Réseau du navigateur de l’utilisateur régulier, observez les requêtes GET continues envoyées à https://discourse-url/t/xxxxx/posts.json? (où xxxxx est l’ID du sujet supprimé).
    • Remarquez que toutes ces requêtes renvoient systématiquement un code d’état HTTP 403 Forbidden.
    • L’application n’affiche aucun message indiquant que le sujet a été supprimé, ni n’arrête d’envoyer ces requêtes de défilement échouées.

Conséquences potentielles

  • Dans ma communauté, nous utilisons Cloudflare pour prévenir les cyberattaques, et ce bug a entraîné un trop grand nombre de requêtes de la part de certains utilisateurs, qui ont été limités en débit.
1 « J'aime »

Quelle est votre version actuelle de Discourse ?

Il y a eu un rapport similaire récemment qui a abouti à une correction :

3 « J'aime »