diff --git a/app/workers/notification_worker.rb b/app/workers/notification_worker.rb
index 386e94111f54343168b948641f8848b5667099da..e4c38d3844bb6f2d455fa680a8583db6c3a93e33 100644
--- a/app/workers/notification_worker.rb
+++ b/app/workers/notification_worker.rb
@@ -3,6 +3,8 @@
 class NotificationWorker
   include Sidekiq::Worker
 
+  sidekiq_options retry: 5
+
   def perform(stream_entry_id, target_account_id)
     SendInteractionService.new.call(StreamEntry.find(stream_entry_id), Account.find(target_account_id))
   end
diff --git a/app/workers/pubsubhubbub/confirmation_worker.rb b/app/workers/pubsubhubbub/confirmation_worker.rb
index 489bd835904a633578bea86af0a32b8de5251552..868fd9f972c8015d5292d0f58d887279bf278a87 100644
--- a/app/workers/pubsubhubbub/confirmation_worker.rb
+++ b/app/workers/pubsubhubbub/confirmation_worker.rb
@@ -4,7 +4,7 @@ class Pubsubhubbub::ConfirmationWorker
   include Sidekiq::Worker
   include RoutingHelper
 
-  sidekiq_options queue: 'push'
+  sidekiq_options queue: 'push', retry: false
 
   def perform(subscription_id, mode, secret = nil, lease_seconds = nil)
     subscription = Subscription.find(subscription_id)
diff --git a/app/workers/pubsubhubbub/delivery_worker.rb b/app/workers/pubsubhubbub/delivery_worker.rb
index 35bf7b2f07e7f4e3263ecdf33f7f7b3bdb144500..15005bc80200a02a88edd32eefd719fad29d5458 100644
--- a/app/workers/pubsubhubbub/delivery_worker.rb
+++ b/app/workers/pubsubhubbub/delivery_worker.rb
@@ -4,7 +4,11 @@ class Pubsubhubbub::DeliveryWorker
   include Sidekiq::Worker
   include RoutingHelper
 
-  sidekiq_options queue: 'push', retry: 5
+  sidekiq_options queue: 'push', retry: 3, dead: false
+
+  sidekiq_retry_in do |count|
+    5 * (count + 1)
+  end
 
   def perform(subscription_id, payload)
     subscription = Subscription.find(subscription_id)
diff --git a/app/workers/thread_resolve_worker.rb b/app/workers/thread_resolve_worker.rb
index 84eae73befa997fa1afe41ce2c9321c4219fc5ff..593edd032f2e62c06019912908c95f8cb28fab74 100644
--- a/app/workers/thread_resolve_worker.rb
+++ b/app/workers/thread_resolve_worker.rb
@@ -3,6 +3,8 @@
 class ThreadResolveWorker
   include Sidekiq::Worker
 
+  sidekiq_options retry: false
+
   def perform(child_status_id, parent_url)
     child_status  = Status.find(child_status_id)
     parent_status = FetchRemoteStatusService.new.call(parent_url)
diff --git a/app/workers/unfavourite_worker.rb b/app/workers/unfavourite_worker.rb
index a14c82d6fcec4ce968e5db098d09881b9da4888c..cce07e486c7106647fddec8a24446e626ca6d49e 100644
--- a/app/workers/unfavourite_worker.rb
+++ b/app/workers/unfavourite_worker.rb
@@ -5,5 +5,7 @@ class UnfavouriteWorker
 
   def perform(account_id, status_id)
     UnfavouriteService.new.call(Account.find(account_id), Status.find(status_id))
+  rescue ActiveRecord::RecordNotFound
+    true
   end
 end