diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py
index 98df53548577f474a1c034d50cbd3b5ba804bfe9..299119e1f52a332084f7fa9f8ec55acfa1ef1861 100644
--- a/api/funkwhale_api/federation/serializers.py
+++ b/api/funkwhale_api/federation/serializers.py
@@ -1896,7 +1896,7 @@ class ChannelUploadSerializer(jsonld.JsonLdSerializer):
         include_image(data, upload.track.attachment_cover)
         tags = [item.tag.name for item in upload.get_all_tagged_items()]
         if tags:
-            data["tag"] = [repr_tag(name) for name in tags]
+            data["tag"] = [repr_tag(name) for name in sorted(set(tags))]
             data["summary"] = " ".join(["#{}".format(name) for name in tags])
 
         if self.context.get("include_ap_context", True):