about summary refs log tree commit diff
path: root/app/services/bootstrap_timeline_service.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-10-01 15:10:00 +0200
committerEugen Rochko <eugen@zeonfederated.com>2019-10-01 15:10:00 +0200
commit3a4d994c40962a9abe45565a34e3d7a3ca1ccd49 (patch)
tree74ca14f8ddc1b4ef9609dfb28b1fac60c6e3c339 /app/services/bootstrap_timeline_service.rb
parent541269f8bcb575501215b6694924075d696b710b (diff)
Fix BootstrapTimelineService crashing when bootstrapped accounts are invalid (#12037)
* Add test to handle suspended and missing users in BootstrapTimelineService

* Fix BootstrapTimelineService crashing when bootstrapped accounts are invalid
Diffstat (limited to 'app/services/bootstrap_timeline_service.rb')
-rw-r--r--app/services/bootstrap_timeline_service.rb8
1 files changed, 7 insertions, 1 deletions
diff --git a/app/services/bootstrap_timeline_service.rb b/app/services/bootstrap_timeline_service.rb
index db2c83e5d..c489601c1 100644
--- a/app/services/bootstrap_timeline_service.rb
+++ b/app/services/bootstrap_timeline_service.rb
@@ -17,7 +17,11 @@ class BootstrapTimelineService < BaseService
 
   def autofollow_bootstrap_timeline_accounts!
     bootstrap_timeline_accounts.each do |target_account|
-      FollowService.new.call(@source_account, target_account)
+      begin
+        FollowService.new.call(@source_account, target_account)
+      rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
+        nil
+      end
     end
   end
 
@@ -40,7 +44,9 @@ class BootstrapTimelineService < BaseService
 
   def local_unlocked_accounts(usernames)
     Account.local
+           .without_suspended
            .where(username: usernames)
            .where(locked: false)
+           .where(moved_to_account_id: nil)
   end
 end