diff --git a/app/models/status.rb b/app/models/status.rb
index db3c130deb82645f2eb34bc2ca3e3106ed18f148..74deeeb50c918d613cf5efc834741a34aa3e0866 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -255,7 +255,7 @@ class Status < ApplicationRecord
   before_validation :set_conversation
   before_validation :set_local
 
-  before_save :set_poll_id
+  after_create :set_poll_id
 
   class << self
     def selectable_visibilities
@@ -446,7 +446,7 @@ class Status < ApplicationRecord
   end
 
   def set_poll_id
-    self.poll_id = owned_poll.id unless owned_poll.nil?
+    update_column(:poll_id, owned_poll.id) unless owned_poll.nil?
   end
 
   def set_visibility
diff --git a/app/services/activitypub/fetch_remote_poll_service.rb b/app/services/activitypub/fetch_remote_poll_service.rb
index 6f0ac5624fef3597b4a76f217a4d46cbd1e274cf..ea75e8ef980ab2218e3825197e52d84ff43f58db 100644
--- a/app/services/activitypub/fetch_remote_poll_service.rb
+++ b/app/services/activitypub/fetch_remote_poll_service.rb
@@ -46,6 +46,6 @@ class ActivityPub::FetchRemotePollService < BaseService
   end
 
   def expected_type?
-    equals_or_includes_any?(@json['type'], 'Question')
+    equals_or_includes_any?(@json['type'], %w(Question))
   end
 end
diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb
index ed0c569230f64f3e459eb7f893a3f55738fe8fbf..b98759bf68b698d5bd5fce4d5f74e380ab7a8725 100644
--- a/app/services/resolve_url_service.rb
+++ b/app/services/resolve_url_service.rb
@@ -20,7 +20,7 @@ class ResolveURLService < BaseService
   def process_url
     if equals_or_includes_any?(type, %w(Application Group Organization Person Service))
       FetchRemoteAccountService.new.call(atom_url, body, protocol)
-    elsif equals_or_includes_any?(type, %w(Note Article Image Video Page))
+    elsif equals_or_includes_any?(type, %w(Note Article Image Video Page Question))
       FetchRemoteStatusService.new.call(atom_url, body, protocol)
     end
   end