Ce que les deux publications ont en commun, c’est qu’il y a des réactions, mais que le nombre de “j’aime” ne semble pas être disponible comme le compte dans actions_summary.
Selon que vous ayez réagi vous-même à la publication ou non, id: 2 est soit manquant dans actions_summary, soit si vous n’avez pas réagi, vous pouvez voir que le compte est manquant. Si je comprends bien, id: 2 est inclus si vous pouviez réagir (can_act) ou si count>0.
Dans ce cas, le count: 2 est manquant pour les deux utilisateurs. Pour l’utilisateur qui a déjà réagi, cela entraîne l’absence complète de id: 2. Cela semble expliquer pourquoi les réactions ne sont pas affichées pour l’utilisateur qui a réagi, même si des réactions existent.
Sur cette publication, le compte est disponible et les réactions apparaissent comme prévu.
Je n’ai aucune idée du nombre de publications ici sur Meta qui sont affectées par cela ou si d’autres forums sont également affectés. Et je ne peux pas fournir d’étapes expliquant pourquoi les données sont manquantes. Je peux seulement signaler que pour certaines publications, les réactions ne sont pas affichées sur les téléphones mobiles et ne sont que partiellement affichées sur les ordinateurs portables, et que la cause semble être liée aux données manquantes.
Avez-vous pu découvrir comment cela s’est produit ? Je n’ai trouvé que des exemples de 2023 et du début de 2024. Je me demandais donc si quelque chose avec les données avant que toutes les réactions ne soient comptées comme des “j’aime” est différent d’après ce changement.
J’ai donc essayé ce qui se passe si j’utilise une réaction qui est exclue du décompte comme un “j’aime”, mais alors “can_act” est toujours vrai même si “can_undo” pour current_user_reaction est faux.
C’est parce que discourse_reactions_like_sync_enabled est défini sur false. Cela a été fait intentionnellement lors de la migration de mai 2024 pour éviter de perturber les données existantes.
Lorsque ce paramètre est désactivé, le ReactionLikeSynchronizer ne s’exécute pas. Ce synchroniseur est responsable de :
La création des enregistrements PostAction (like) pour les réactions
La mise à jour de posts.like_count pour refléter les réactions
Sans l’exécution de la synchronisation :
Les réactions existent dans discourse_reactions_reaction_users
Mais il n’y a pas d’enregistrements PostAction correspondants
Et posts.like_count reste à 0
Votre intuition concernant le calendrier est tout à fait correcte - les publications de 2023/début 2024 ont vu des réactions ajoutées lorsque cette synchronisation n’était pas active, donc leur like_count n’a jamais été mis à jour. La logique de l’ancien sérialiseur a ensuite omis complètement l’action de like lorsque count = 0 ET can_act = false (fenêtre d’annulation expirée).
La correction ne corrige pas la divergence de données sous-jacente - elle garantit simplement que l’interface utilisateur affiche correctement les réactions même lorsque les données PostAction/like_count ne sont pas synchronisées. Sur les sites où discourse_reactions_like_sync_enabled = false, l’existence de réactions indépendantes des enregistrements PostAction est le comportement attendu.