From 428fccf04afdab8dfd2b53e38d39ea51c104d28e Mon Sep 17 00:00:00 2001 From: Shlee Date: Wed, 29 Jul 2026 21:33:40 +0930 Subject: [PATCH] Guard against null values when processing tags and serializing tagged objects (#39983) --- app/lib/activitypub/activity/create.rb | 2 ++ app/serializers/activitypub/note_serializer.rb | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/lib/activitypub/activity/create.rb b/app/lib/activitypub/activity/create.rb index ae3e8eed582..b8fd322c8b2 100644 --- a/app/lib/activitypub/activity/create.rb +++ b/app/lib/activitypub/activity/create.rb @@ -219,6 +219,8 @@ class ActivityPub::Activity::Create < ActivityPub::Activity return if @object['tag'].nil? as_array(@object['tag']).each do |tag| + next if tag.nil? + if equals_or_includes?(tag['type'], 'Hashtag') process_hashtag tag elsif equals_or_includes?(tag['type'], 'Mention') diff --git a/app/serializers/activitypub/note_serializer.rb b/app/serializers/activitypub/note_serializer.rb index 5caab3f95e8..225458c18f0 100644 --- a/app/serializers/activitypub/note_serializer.rb +++ b/app/serializers/activitypub/note_serializer.rb @@ -139,7 +139,7 @@ class ActivityPub::NoteSerializer < ActivityPub::Serializer end def virtual_tags - object.active_mentions.to_a.sort_by(&:id) + object.tags + object.emojis + object.tagged_objects.map(&:object) + object.active_mentions.to_a.sort_by(&:id) + object.tags + object.emojis + object.tagged_objects.filter_map(&:object) end def atom_uri