diff --git a/core/modules/layout_builder/layout_builder.module b/core/modules/layout_builder/layout_builder.module
index e51b669614..716fe16654 100644
--- a/core/modules/layout_builder/layout_builder.module
+++ b/core/modules/layout_builder/layout_builder.module
@@ -22,11 +22,11 @@
 use Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage;
 use Drupal\Core\Entity\FieldableEntityInterface;
 use Drupal\Core\Entity\Entity\EntityViewDisplay;
-use Drupal\Core\Plugin\Context\Context;
 use Drupal\Core\Plugin\Context\ContextDefinition;
 use Drupal\Core\StringTranslation\TranslatableMarkup;
 use Drupal\Core\Plugin\Context\EntityContext;
-
+use Drupal\Core\Plugin\Context\Context;
+use Drupal\Core\Cache\CacheableMetadata;
 /**
  * Implements hook_help().
  */
@@ -259,31 +259,32 @@ function layout_builder_quickedit_render_field(EntityInterface $entity, $field_n
   list(, $delta, $component_uuid) = explode('-', $view_mode_id, 3);
   if ($entity instanceof FieldableEntityInterface) {
     $view_display = EntityViewDisplay::collectRenderDisplay($entity, $view_mode_id);
-    if ($view_display instanceof LayoutEntityDisplayInterface) {
-      /** @var \Drupal\layout_builder\SectionStorage\SectionStorageManagerInterface $section_manager */
-      $section_manager = \Drupal::service('plugin.manager.layout_builder.section_storage');
-      $section_list = $section_manager->findByContext('view', ['entity' => EntityContext::fromEntity($entity)]);
-      if (count($section_list) === 0) {
-        // @todo Do I have to do this extra call to findByContext()?
-        // It seem weird that the *manager* couldn't figure out by the entity has not overrides
-        // so the default storage should take over.
-        $section_list = $section_manager->findByContext('view', ['display' => EntityContext::fromEntity($view_display)]);
-      }
+    /** @var \Drupal\layout_builder\SectionStorage\SectionStorageManagerInterface $section_manager */
+    $section_manager = \Drupal::service('plugin.manager.layout_builder.section_storage');
+    $cacheableMetaData = new CacheableMetadata();
+    $section_list = $section_manager->findByContext(
+      [
+        'display' => EntityContext::fromEntity($view_display),
+        'entity' => EntityContext::fromEntity($entity),
+        'view_mode' => new Context(new ContextDefinition('string'), $view_mode_id),
+      ],
+      $cacheableMetaData
+    );
 
-      $component = $section_list->getSection($delta)
-        ->getComponent($component_uuid);
-      $contexts = \Drupal::service('context.repository')
-        ->getAvailableContexts();
-      // @todo Change to use EntityContextDefinition in
-      // https://www.drupal.org/project/drupal/issues/2932462.
-      $contexts['layout_builder.entity'] = new Context(new ContextDefinition("entity:{$entity->getEntityTypeId()}", new TranslatableMarkup('@entity being viewed', [
-        '@entity' => $entity->getEntityType()
-          ->getLabel(),
-      ])), $entity);
-      $block = $component->toRenderArray($contexts);
-      $build = $block['content'];
-      $build['#view_mode'] = $view_mode_id;
-    }
+    $component = $section_list->getSection($delta)
+      ->getComponent($component_uuid);
+    $contexts = \Drupal::service('context.repository')
+      ->getAvailableContexts();
+    // @todo Change to use EntityContextDefinition in
+    // https://www.drupal.org/project/drupal/issues/2932462.
+    $contexts['layout_builder.entity'] = new Context(new ContextDefinition("entity:{$entity->getEntityTypeId()}", new TranslatableMarkup('@entity being viewed', [
+      '@entity' => $entity->getEntityType()
+        ->getLabel(),
+    ])), $entity);
+    $block = $component->toRenderArray($contexts);
+    $build = $block['content'];
+    $build['#view_mode'] = $view_mode_id;
+    $cacheableMetaData->applyTo($build);
   }
   return $build;
 }
@@ -301,7 +302,8 @@ function _layout_builder_quick_edit_view_alter(array &$build, EntityInterface $e
   if (!isset($build['_layout_builder'])) {
     return;
   }
-  foreach ($build['_layout_builder'] as $delta => &$section) {
+  foreach (Element::children($build['_layout_builder']) as $delta => &$section) {
+    $section = &$build['_layout_builder'][$delta];
     /** @var Drupal\Core\Layout\LayoutDefinition $layout */
     $layout = $section['#layout'];
     $regions = $layout->getRegionNames();
