Abzeichen-Favoriten funktionieren für einige Benutzer nicht – Es erscheint eine Meldung "FAILED"

Ich habe ein Problem damit, dass ein Benutzer seine Favoriten nicht umschalten kann. Ich habe hier ein paar Artikel und Pull-Requests gefunden, die diesem Fehler entsprechen, aber sie sind zwei Jahre alt und die Merge-Requests waren vorhanden. Es scheint sich also um ein anderes Problem zu handeln.

Es betrifft nicht jeden Benutzer, aber dieser Benutzer hat zwei Favoriten für seine Abzeichen. Jedes Abzeichen hat mehr als eine Errungenschaft. Wenn ich auf Favorit klicke, erscheint nur ein Popup, das besagt, dass es fehlgeschlagen ist.

Die Konsole in Chrome gibt an, dass wir einen 400-Fehler von unserer URL /user_badges/17307/toggle_favorite erhalten.

Irgendwelche Ideen zur Behebung dieses Problems? Es funktioniert weder in der App noch im Browser.

Ähnliches Thema: "FAILED" error selecting Favorite badges

Das zweimalige Klicken hat bei diesem Fehler jedoch nicht funktioniert.

Hallo @Josiah_Philipsen :slight_smile:

Sind Sie dem am Ende auf den Grund gegangen?

Hier könnte eine Ursache liegen. Zu Referenzzwecken bin ich ein Benutzer im Roblox DevForum, der v3.0.3 verwendet, kein Administrator, und erleide das hier beschriebene Problem. Ich habe dort eine kleine Ausarbeitung gemacht, um es selbst herauszufinden, aber ich werde den relevanten Teil kopieren/einfügen:

Ich konnte meine Lieblingsabzeichen schon vor langer Zeit auswählen, als ich einzelne hatte, aber jetzt, wo ich gestapelte Kopien habe, kann ich sie nicht mehr abwählen. Vielleicht liegt es daran, dass man mehr Kopien erhält, nachdem man sie favorisiert hat, da jedes Abzeichen einzigartig ist, egal wie viele Duplikate man erhält? Das ist meine aktuelle Begründung, aber natürlich kann ich das nicht beweisen, ohne die tatsächliche Discourse-Installation untersuchen zu können.

Ich habe die Abzeichen Great Topic und Good Topic vor langer Zeit favorisiert, als ich einzelne Kopien hatte, aber jetzt habe ich 2 bzw. 4. Wenn ich versuche, sie zu entfavorisieren, erhalte ich die generische Antwort FAILED. Andere Benutzer, die Abzeichen nicht favorisiert haben, können sie nach Belieben favorisieren und entfavorisieren, was darauf hindeutet, dass dieses Problem durch das Hinzufügen von Abzeichen desselben Typs, die bereits favorisiert sind, verursacht wird und dass diese Kopien zu Ihren Gesamtfavoriten zählen, wodurch eine Assertion fehlschlägt.

Wenn man sich toggle_favorite für diese Version ansieht, ist die einzige Assertion bezüglich der Abzeichenanzahl:

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

Ich habe dies zunächst abgetan, weil user_badge.is_favorite hier wahr sein sollte, aber jetzt beginne ich zu denken, dass sie aufgrund der zusätzlichen Kopien nicht als favorisiert gelten…

Wenn dies übrigens in einer neueren Version behoben wurde, entschuldige ich mich für das Wiederaufleben dieses Problems, aber die Administratoren dort versuchen, es zu lösen, und es war eine verlorene Sache, daher versuche ich, hier Aufmerksamkeit darauf zu lenken, um es ihnen zu erleichtern, es zu beheben oder Discourse zu aktualisieren.

1 „Gefällt mir“