diff --git a/core/lib/Drupal/Core/Config/Entity/ConfigEntityUpdater.php b/core/lib/Drupal/Core/Config/Entity/ConfigEntityUpdater.php
index 571b991425..a98d92eddd 100644
--- a/core/lib/Drupal/Core/Config/Entity/ConfigEntityUpdater.php
+++ b/core/lib/Drupal/Core/Config/Entity/ConfigEntityUpdater.php
@@ -92,13 +92,13 @@ public static function create(ContainerInterface $container) {
   public function update(array &$sandbox, $entity_type_id, callable $callback = NULL) {
     $storage = $this->entityTypeManager->getStorage($entity_type_id);
     $sandbox_key = 'config_entity_updater:' . $entity_type_id;
-    if (!isset($sandbox[$sandbox_key])) {
+    if (!isset($sandbox['sandbox_keys'][$sandbox_key])) {
       $entity_type = $this->entityTypeManager->getDefinition($entity_type_id);
       if (!($entity_type instanceof ConfigEntityTypeInterface)) {
         throw new \InvalidArgumentException("The provided entity type ID '$entity_type_id' is not a configuration entity type");
       }
-      $sandbox[$sandbox_key]['entities'] = $storage->getQuery()->accessCheck(FALSE)->execute();
-      $sandbox[$sandbox_key]['count'] = count($sandbox[$sandbox_key]['entities']);
+      $sandbox['sandbox_keys'][$sandbox_key]['entities'] = $storage->getQuery()->accessCheck(FALSE)->execute();
+      $sandbox['sandbox_keys'][$sandbox_key]['count'] = count($sandbox['sandbox_keys'][$sandbox_key]['entities']);
     }
 
     // The default behaviour is to fix dependencies.
@@ -111,7 +111,7 @@ public function update(array &$sandbox, $entity_type_id, callable $callback = NU
     }
 
     /** @var \Drupal\Core\Config\Entity\ConfigEntityInterface $entity */
-    $entities = $storage->loadMultiple(array_splice($sandbox[$sandbox_key]['entities'], 0, $this->batchSize));
+    $entities = $storage->loadMultiple(array_splice($sandbox['sandbox_keys'][$sandbox_key]['entities'], 0, $this->batchSize));
     foreach ($entities as $entity) {
       if (call_user_func($callback, $entity)) {
         $entity->trustData();
@@ -119,7 +119,14 @@ public function update(array &$sandbox, $entity_type_id, callable $callback = NU
       }
     }
 
-    $sandbox['#finished'] = empty($sandbox[$sandbox_key]['entities']) ? 1 : ($sandbox[$sandbox_key]['count'] - count($sandbox[$sandbox_key]['entities'])) / $sandbox[$sandbox_key]['count'];
+    $sandbox['sandbox_keys'][$sandbox_key]['#finished'] = empty($sandbox['sandbox_keys'][$sandbox_key]['entities']) ? 1 : ($sandbox['sandbox_keys'][$sandbox_key]['count'] - count($sandbox['sandbox_keys'][$sandbox_key]['entities'])) / $sandbox['sandbox_keys'][$sandbox_key]['count'];
+    $sandbox['#finished'] = $sandbox['sandbox_keys'][$sandbox_key]['#finished'];
+
+    $sub_sandbox_info = reset($sandbox['sandbox_keys']);
+    while($sandbox['#finished'] && $sub_sandbox_info) {
+      $sandbox['#finished'] = $sub_sandbox_info['#finished'];
+      $sub_sandbox_info = next($sandbox['sandbox_keys']);
+    }
   }
 
 }
diff --git a/core/modules/system/system.post_update.php b/core/modules/system/system.post_update.php
index 114d289120..22fdf0c0b1 100644
--- a/core/modules/system/system.post_update.php
+++ b/core/modules/system/system.post_update.php
@@ -240,3 +240,12 @@ function system_post_update_entity_reference_autocomplete_match_limit(&$sandbox
 
   $config_entity_updater->update($sandbox, 'entity_form_display', $callback);
 }
+
+/**
+ * Update all entity displays that contain extra fields.
+ *
+ * Re-run the update because of https://www.drupal.org/project/drupal/issues/3092714
+ */
+function system_post_update_extra_fields_rerun(&$sandbox = NULL) {
+  system_post_update_extra_fields($sandbox);
+}
diff --git a/core/modules/text/text.post_update.php b/core/modules/text/text.post_update.php
index 5c98e26b00..f9baa021dd 100644
--- a/core/modules/text/text.post_update.php
+++ b/core/modules/text/text.post_update.php
@@ -47,3 +47,12 @@ function text_post_update_add_required_summary_flag(&$sandbox = NULL) {
   $config_entity_updater->update($sandbox, 'entity_form_display', $widget_callback);
   $config_entity_updater->update($sandbox, 'field_config', $field_callback);
 }
+
+/**
+ * Update text_with_summary fields and widgets to add summary required flags.
+ *
+ * Re-run the update because of https://www.drupal.org/project/drupal/issues/3092714
+ */
+function text_post_update_add_required_summary_flag_rerun(&$sandbox = NULL) {
+  text_post_update_add_required_summary_flag($sandbox);
+}
