diff --git a/core/lib/Drupal/Core/Field/FieldDefinitionListener.php b/core/lib/Drupal/Core/Field/FieldDefinitionListener.php index 7a9b1fb160..50c9371da7 100644 --- a/core/lib/Drupal/Core/Field/FieldDefinitionListener.php +++ b/core/lib/Drupal/Core/Field/FieldDefinitionListener.php @@ -132,7 +132,8 @@ public function onFieldDefinitionDelete(FieldDefinitionInterface $field_definiti $target_entity_storage = $this->entityTypeManager->getStorage($field_definition->getTargetEntityTypeId()); $field_has_data = $target_entity_storage instanceof FieldableEntityStorageInterface && $target_entity_storage->countFieldData($field_definition->getFieldStorageDefinition(), TRUE); - if ($field_has_data) { + $deleted_field_definitions = $this->deletedFieldsRepository->getFieldDefinitions(); + if ($field_has_data && !isset($deleted_field_definitions[$field_definition->getUniqueIdentifier()])) { $this->deletedFieldsRepository->addFieldDefinition($field_definition); }