about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/models/account.rb6
-rw-r--r--spec/services/activitypub/process_account_service_spec.rb1
2 files changed, 6 insertions, 1 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index a6d8d1537..f7a7f4a7b 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -295,7 +295,11 @@ class Account < ApplicationRecord
   end
 
   def fields
-    (self[:fields] || []).map { |f| Field.new(self, f) }
+    (self[:fields] || []).map do |f|
+      Field.new(self, f)
+    rescue
+      nil
+    end.compact
   end
 
   def fields_attributes=(attributes)
diff --git a/spec/services/activitypub/process_account_service_spec.rb b/spec/services/activitypub/process_account_service_spec.rb
index 56e7f8321..1b1d878a7 100644
--- a/spec/services/activitypub/process_account_service_spec.rb
+++ b/spec/services/activitypub/process_account_service_spec.rb
@@ -12,6 +12,7 @@ RSpec.describe ActivityPub::ProcessAccountService, type: :service do
         attachment: [
           { type: 'PropertyValue', name: 'Pronouns', value: 'They/them' },
           { type: 'PropertyValue', name: 'Occupation', value: 'Unit test' },
+          { type: 'PropertyValue', name: 'non-string', value: ['foo', 'bar'] },
         ],
       }.with_indifferent_access
     end