diff --git a/core/modules/field/field.module b/core/modules/field/field.module
index faafebdf521a8d50de1dc68b6fea07f1253afde2..534d0718f125a5e8c59a2075422ff9a107dd4709 100644
--- a/core/modules/field/field.module
+++ b/core/modules/field/field.module
@@ -392,6 +392,9 @@ function field_field_storage_config_update(FieldStorageConfigInterface $field_st
  * Determine the selection handler plugin ID for an entity reference field.
  */
 function field_field_config_create(FieldConfigInterface $field) {
+  if ($field->isSyncing()) {
+    return;
+  }
   // Act on all sub-types of the entity_reference field type.
   /** @var \Drupal\Core\Field\FieldTypePluginManager $field_type_manager */
   $field_type_manager = \Drupal::service('plugin.manager.field.field_type');
diff --git a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
index 03532ffbce57c17cee5421d42876a71987f82ef5..ef12736e38f2bc3e1bf5b9968f0eb736295a7dcd 100644
--- a/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
+++ b/core/modules/field/tests/src/Kernel/EntityReference/EntityReferenceItemTest.php
@@ -404,6 +404,17 @@ public function testSelectionHandlerSettings() {
     $field_storage->save();
     $field = FieldConfig::load($field->id());
     $this->assertEquals('views', $field->getSetting('handler'));
+
+    // Check that selection handlers aren't changed during sync.
+    $field = FieldConfig::create([
+      'field_storage' => $field_storage,
+      'bundle' => 'entity_test',
+      'settings' => [
+        'handler' => 'fake:thing',
+      ],
+      'isSyncing' => TRUE,
+    ]);
+    $this->assertEquals('fake:thing', $field->getSetting('handler'));
   }
 
   /**