일부 사용자에서 배지 즐겨찾기 오류 - "실패" 팝업 표시

특정 사용자가 즐겨찾기를 전환할 수 없는 문제에 대해 질문드립니다. 해당 오류와 일치하는 몇몇 게시물과 pull request를 찾았지만, 모두 2년 전 것들이며 merge request는 이미 적용되어 있었습니다. 따라서 별개의 문제인 것으로 보입니다.

모든 사용자에게 발생하는 문제는 아니지만, 해당 사용자는 배지에 대한 즐겨찾기가 두 개 있습니다. 각 배지는 하나 이상의 성취(accomplished) 항목을 가지고 있습니다. 즐겨찾기를 클릭하면 단순히 'failed’라는 팝업만 표시됩니다.

크롬 콘솔에서는 /user_badges/17307/toggle_favorite URL에서 400 오류가 발생한다고 표시됩니다.

이 문제를 수정하는 방법에 대해 아이디어가 있으신가요? 앱이나 브라우저에서 모두 작동하지 않습니다.

유사한 주제: "FAILED" error selecting Favorite badges

다만, 두 번 클릭하는 방법은 이 오류에는 효과가 없었습니다.

안녕하세요 @Josiah_Philipsen :slight_smile:

결국 이 문제를 해결할 수 있었나요?

여기 원인이 있을 것 같습니다. 참고로 저는 Roblox DevForum의 v3.0.3을 사용하는 일반 사용자이며 관리자가 아닙니다. 여기 설명된 문제를 겪고 있습니다. 저번에 해당 문제를 스스로 해결하기 위해 DevForum에 짧은 글을 올린 적이 있는데, 관련 부분을 그대로 가져오겠습니다:

예전에 개별 배지를 가지고 있을 때는 즐겨찾기로 설정했던 배지들을 선택할 수 있었습니다. 하지만 이제 중복된 복사본이 쌓여있기 때문에 더 이상 즐겨찾기에서 해제할 수 없습니다. 따라서 즐겨찾기로 설정한 후에 더 많은 복사본을 얻은 것이 원인일 수 있습니다. 각 배지는 중복이 얼마나 많든 고유하기 때문이죠. 이것이 제 현재 추측이지만, 실제 Discourse 설치 환경에서 직접 확인해 볼 수 없기 때문에 이를 증명할 수는 없습니다.

예전에 Great Topic과 Good Topic 배지를 각각 1개씩 가지고 있을 때 즐겨찾기로 설정해 두었습니다. 하지만 현재 각각 2개와 4개를 가지고 있습니다. 즐겨찾기에서 해제하려고 하면 범용적인 FAILED 응답이 반환됩니다. 배지를 즐겨찾기로 설정해 본 적 없는 다른 사용자는 배지를 마음대로 즐겨찾기하고 해제할 수 있으므로, 이 문제는 이미 즐겨찾기로 설정된 유형의 배지가 추가될 때 발생하며, 이러한 복사본들이 총 즐겨찾기 수에 포함되기 때문에 어떤 검증(assertion)이 실패하는 것으로 보입니다.

이 버전의 toggle_favorite를 살펴보면, 배지 수와 관련된 유일한 검증은 다음과 같습니다:

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

처음에는 user_badge.is_favorite가 여기서는 true여야 하므로 이 부분을 무시했습니다. 하지만 이제 추가된 복사본들 때문에 이 배지들이 즐겨찾기로 간주되지 않는 것 같다는 생각이 들기 시작합니다…

혹시 새 버전에서 이 문제가 수정되었다면 이 오래된 주제를 다시 꺼낸 것에 대해 사과드립니다. 하지만 DevForum의 관리자분들이 해결책을 찾고 있는데 아직까지 별다른 진전이 없어 포기할 뻔한 상황이었습니다. 그래서 여기에서 관심을 끌기 위해 글을 올려, 수정하거나 Discourse를 업그레이드하는 작업을 더 쉽게 할 수 있도록 돕고자 합니다.