Les Favoris Badge ne fonctionnent pas pour certains utilisateurs - Ils reçoivent une notification disant "ÉCHEC"

J’ai un problème avec un utilisateur qui ne peut pas basculer ses favoris. J’ai trouvé quelques articles et des pull requests qui correspondent à cette erreur, mais ils datent de deux ans et les demandes de fusion étaient en place. Il semble donc s’agir d’un autre problème.

Ce n’est pas tous les utilisateurs, mais cet utilisateur a deux favoris pour ses badges. Chaque badge a plus d’un accomplissement. Lorsque je clique sur favori, une fenêtre contextuelle indique simplement “échec”.

La console de Chrome indique que nous recevons une erreur 400 de notre URL /user_badges/17307/toggle_favorite.

Des idées sur la façon de résoudre ce problème ? Cela ne fonctionne ni sur l’application ni dans le navigateur.

Sujet similaire : "FAILED" error selecting Favorite badges

Cependant, cliquer deux fois n’a pas fonctionné pour cette erreur.

Salut @Josiah_Philipsen :slight_smile:
Avez-vous réussi à résoudre ce problème au final ?

Il pourrait y avoir une cause ici. Pour référence, je suis un utilisateur sur le Roblox DevForum utilisant la version 3.0.3, pas un administrateur, et je rencontre le problème décrit ici. J’ai fait une petite rédaction là-bas en essayant de le résoudre moi-même, mais je vais copier/coller la partie pertinente :

J’ai pu sélectionner mes badges préférés il y a longtemps lorsque j’avais des badges individuels, mais maintenant que j’ai des copies empilées, je ne peux plus les désélectionner, donc c’est peut-être dû au fait d’obtenir plus de copies après les avoir mis en favoris, car chaque badge est unique, peu importe le nombre de doublons que vous obtenez ? C’est mon raisonnement actuel, mais bien sûr, sans pouvoir examiner l’installation réelle de Discourse, je ne peux pas le prouver.

J’ai mis en favoris les badges Great Topic et Good Topic il y a longtemps lorsque j’avais des copies uniques, mais j’en ai maintenant 2 et 4 respectivement. Lorsque j’essaie de les retirer des favoris, cela se traduit par la réponse générique FAILED. D’autres utilisateurs qui n’ont pas mis de badges en favoris peuvent les mettre et les retirer à volonté, ce qui indique que ce problème est causé par l’ajout de badges du même type déjà mis en favoris, et que ces copies comptent dans vos favoris totaux, donc une assertion échoue.

En regardant toggle_favorite pour cette version, la seule assertion relative au nombre de badges est :

if !user_badge.is_favorite &&
     user_badges.select(:badge_id).distinct.where(is_favorite: true).count >=
       SiteSetting.max_favorite_badges
  return render json: failed_json, status: 400
end

J’avais initialement écarté cela car user_badge.is_favorite devrait être vrai ici, mais je commence maintenant à penser qu’en raison des copies supplémentaires, ils ne sont pas considérés comme favoris…

Si cela a été corrigé dans une version plus récente, je m’excuse de relancer ce sujet, mais les administrateurs là-bas essaient de le résoudre et c’était une cause perdue, alors j’essaie d’attirer l’attention ici pour leur faciliter la tâche de le corriger ou de mettre à jour Discourse.

1 « J'aime »