diff --git a/app/models/communication/website/with_connected_objects.rb b/app/models/communication/website/with_connected_objects.rb
index 2c3c783fcc913d3ad7dfd0f36f54ab884b711440..82ad076edd93f7edb2aa68a50a25306b09bafdc4 100644
--- a/app/models/communication/website/with_connected_objects.rb
+++ b/app/models/communication/website/with_connected_objects.rb
@@ -107,6 +107,8 @@ module Communication::Website::WithConnectedObjects
     # On ne connecte pas le site à lui-même
     !indirect_object.is_a?(Communication::Website) &&
     # On ne connecte pas les objets directs (en principe ça n'arrive pas)
-    !indirect_object.try(:is_direct_object?)
+    !indirect_object.try(:is_direct_object?) &&
+    # On ne connecte pas des objets qui ne sont pas issus de modèles ActiveRecord (comme les composants des blocs)
+    indirect_object.is_a?(ActiveRecord::Base)
   end
 end
\ No newline at end of file
diff --git a/app/models/concerns/as_indirect_object.rb b/app/models/concerns/as_indirect_object.rb
index 7e4ab7a51c3c8a95e9e5a258a5a99bc77e6c921a..58859b131206621c37347f3129045ebce9c180d8 100644
--- a/app/models/concerns/as_indirect_object.rb
+++ b/app/models/concerns/as_indirect_object.rb
@@ -54,6 +54,8 @@ module AsIndirectObject
   protected
 
   def direct_sources_from_reference(reference)
+    # Early-return to ignore contexts without connections (ex: extranets)
+    return [] unless reference.respond_to?(:is_direct_object?)
     reference.is_direct_object? ? [reference] # Récupération de la connexion directe
                                 : reference.direct_sources_from_existing_connections # Récupération via les connexions des références
   end
diff --git a/lib/tasks/app.rake b/lib/tasks/app.rake
index e0bca1fa1395dc26c897e8fe67da560f5af506d3..18181a021cf65e4ba837804f8938e170eef20a19 100644
--- a/lib/tasks/app.rake
+++ b/lib/tasks/app.rake
@@ -10,16 +10,7 @@ namespace :app do
   task fix: :environment do
     ContentMigration.run
     Communication::Website.find_each do |website|
-      # Rebuild connections
-      website.pages.find_each(&:connect_dependencies)
-      website.posts.find_each(&:connect_dependencies)
-      website.categories.find_each(&:connect_dependencies)
-      website.menus.find_each(&:connect_dependencies)
-      website.connect(website.about, website) if website.about.present?
-
-      website.destroy_obsolete_connections
-      website.sync_with_git
-      website.destroy_obsolete_git_files
+      MigrateWebsiteConnectionsJob.perform_later(website.id)
     end
   end