Favoritos de Badge não funcionando para alguns usuários - Eles recebem uma mensagem pop-up dizendo "FALHADO"

Estou tendo um problema em que um usuário não consegue alternar seus favoritos. Encontrei alguns artigos e pull requests aqui que correspondem a esse erro, mas eles têm dois anos e as solicitações de mesclagem estavam em vigor. Portanto, parece ser outro problema.

Não é com todos os usuários, mas este usuário tem dois favoritos para seus distintivos. Cada distintivo tem mais de uma conquista. Quando clico em favorito, aparece apenas um pop-up dizendo falha.

O console no Chrome afirma que recebemos um erro 400 de nossa URL /user_badges/17307/toggle_favorite.

Alguma ideia de como consertar isso. Não funciona no aplicativo nem no navegador.

Tópico Semelhante: "FAILED" error selecting Favorite badges

No entanto, clicar duas vezes não funcionou para este erro.

Olá @Josiah_Philipsen :slight_smile:

Você conseguiu resolver isso no final?

Pode haver uma causa aqui. Para referência, sou um usuário no Roblox DevForum executando a v3.0.3, não um administrador, e estou experimentando o problema descrito aqui. Fiz um pequeno resumo lá tentando resolver sozinho, mas vou copiar/colar a parte relevante:

Consegui selecionar meus emblemas favoritos há muito tempo, quando tinha cópias individuais, mas agora que tenho cópias empilhadas, não consigo mais desmarcá-los, então talvez seja devido a obter mais cópias depois de favoritá-los, já que cada emblema é único, não importa quantas duplicatas você obtenha? Essa é a minha linha de raciocínio atual, mas é claro que, sem poder examinar a instalação real do Discourse, não consigo provar isso.

Favoritei os emblemas Great Topic e Good Topic há muito tempo, quando tinha cópias únicas, mas agora tenho 2 e 4 respectivamente. Quando tento desfavoritar, o resultado é a resposta genérica FAILED. Outros usuários que não favoritarem emblemas podem favoritá-los e desfavoritá-los à vontade, o que indica que este problema é causado pela adição de emblemas do mesmo tipo que já foram favoritados, e que essas cópias contam para seus favoritos totais, portanto, alguma asserção está falhando.

Olhando para toggle_favorite para esta versão, a única asserção relacionada à contagem de emblemas é:

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

Inicialmente descartei isso porque user_badge.is_favorite deveria ser verdadeiro aqui, mas agora estou começando a pensar que, por causa das cópias extras, elas não são consideradas favoritas…

Se isso foi corrigido em uma versão mais recente, peço desculpas por ressuscitar isso, mas os administradores lá estão tentando resolver e tem sido uma causa perdida, então estou tentando chamar a atenção aqui para facilitar para eles corrigirem ou atualizarem o Discourse.

1 curtida