diff --git a/core/modules/node/src/Controller/NodeController.php b/core/modules/node/src/Controller/NodeController.php
index 87c9586daee00c3a86be09b2b4a07185b1751577..e860d0c1d2a0adba22f4c95216ef7911c5a7c15c 100644
--- a/core/modules/node/src/Controller/NodeController.php
+++ b/core/modules/node/src/Controller/NodeController.php
@@ -3,6 +3,7 @@
 namespace Drupal\node\Controller;
 
 use Drupal\Component\Utility\Xss;
+use Drupal\Core\Cache\CacheableMetadata;
 use Drupal\Core\Controller\ControllerBase;
 use Drupal\Core\Datetime\DateFormatterInterface;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
@@ -199,7 +200,7 @@ public function revisionOverview(NodeInterface $node) {
           ],
         ];
         // @todo Simplify once https://www.drupal.org/node/2334319 lands.
-        $this->renderer->addCacheableDependency($column['data'], $username);
+        $this->renderer->addCacheableDependency($column['data'], CacheableMetadata::createFromRenderArray($username));
         $row[] = $column;
 
         if ($is_current_revision) {
diff --git a/core/modules/node/tests/src/Functional/NodeRevisionsUiTest.php b/core/modules/node/tests/src/Functional/NodeRevisionsUiTest.php
index 88fe3e34e3ed4723a2c864167b15a12d781f0f2b..201d4b6c7d2512cbe2b29bd24d4e386d420b1297 100644
--- a/core/modules/node/tests/src/Functional/NodeRevisionsUiTest.php
+++ b/core/modules/node/tests/src/Functional/NodeRevisionsUiTest.php
@@ -215,4 +215,20 @@ public function testNodeDuplicateRevisionsTab(): void {
     $this->assertSession()->elementsCount('xpath', $xpath, 1);
   }
 
+  /**
+   * Tests the node revisions page is cacheable by dynamic page cache.
+   */
+  public function testNodeRevisionsCacheability(): void {
+    $this->drupalLogin($this->editor);
+    $node = $this->drupalCreateNode();
+    // Admin paths are always uncacheable by dynamic page cache, swap node
+    // to non admin theme to test cacheability.
+    $this->config('node.settings')->set('use_admin_theme', FALSE)->save();
+    \Drupal::service('router.builder')->rebuild();
+    $this->drupalGet($node->toUrl('version-history'));
+    $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'MISS');
+    $this->drupalGet($node->toUrl('version-history'));
+    $this->assertSession()->responseHeaderEquals('X-Drupal-Dynamic-Cache', 'HIT');
+  }
+
 }