diff --git a/modules/controller/render_cache_entity/src/RenderCache/Controller/EntityController.php b/modules/controller/render_cache_entity/src/RenderCache/Controller/EntityController.php
index 5b72f3c..ad1feb0 100644
--- a/modules/controller/render_cache_entity/src/RenderCache/Controller/EntityController.php
+++ b/modules/controller/render_cache_entity/src/RenderCache/Controller/EntityController.php
@@ -107,7 +107,18 @@ class EntityController extends BaseRecursionController {
     // Otherwise this is a controller class callback.
     else {
       $page = $this->getPageArgument();
-      $build = entity_get_controller($entity_type)->view($entities, $view_mode, $langcode, $page);
+      $controller = entity_get_controller($entity_type);
+      $build = $controller->view($entities, $view_mode, $langcode, $page);
+      // The exportable controller uses the name key for the build array which
+      // is incompatible with our processing - change it back to the id.
+      if (class_exists('\EntityAPIControllerExportable') && $controller instanceof \EntityAPIControllerExportable) {
+        foreach ($build[$entity_type] as $id => $content) {
+          if (isset($content['#entity']->{$entity_info['entity keys']['id']})) {
+            $build[$entity_type][$content['#entity']->{$entity_info['entity keys']['id']}] = $content;
+            unset($build[$entity_type][$id]);
+          }
+        }
+      }
     }
     $build = reset($build);
 
