diff --git a/core/lib/Drupal/Core/Entity/Entity.php b/core/lib/Drupal/Core/Entity/Entity.php
index 6e0b4d8..e89ce31 100644
--- a/core/lib/Drupal/Core/Entity/Entity.php
+++ b/core/lib/Drupal/Core/Entity/Entity.php
@@ -306,7 +306,7 @@ protected function urlRouteParameters($rel) {
       // The entity ID is needed as a route parameter.
       $uri_route_parameters[$this->getEntityTypeId()] = $this->id();
     }
-    if ($rel === 'revision') {
+    if ($rel === 'revision' && $this instanceof RevisionableInterface) {
       $uri_route_parameters[$this->getEntityTypeId() . '_revision'] = $this->getRevisionId();
     }
 
diff --git a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
index ab6af24..7db0950 100644
--- a/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
+++ b/core/tests/Drupal/Tests/Core/Entity/EntityUrlTest.php
@@ -127,6 +127,7 @@ public function providerTestToUrlLinkTemplates() {
     $test_cases['version-history'] = ['version-history', 'entity.test_entity.version_history'];
     $test_cases['edit-form'] = ['edit-form', 'entity.test_entity.edit_form'];
     $test_cases['delete-form'] = ['delete-form', 'entity.test_entity.delete_form'];
+    $test_cases['revision'] = ['revision', 'entity.test_entity.revision'];
 
     return $test_cases;
   }
