diff --git a/src/EntityTypeInfo.php b/src/EntityTypeInfo.php
index 0f1ff23..f91da88 100644
--- a/src/EntityTypeInfo.php
+++ b/src/EntityTypeInfo.php
@@ -108,7 +108,7 @@ class EntityTypeInfo {
       $type->setHandlerClass('moderation', $handler_class);
     }
 
-    if (!$type->hasLinkTemplate('latest-version')) {
+    if (!$type->hasLinkTemplate('latest-version') && $type->hasLinkTemplate('canonical')) {
       $type->setLinkTemplate('latest-version', $type->getLinkTemplate('canonical') . '/latest');
     }
 
diff --git a/src/Plugin/Derivative/DynamicLocalTasks.php b/src/Plugin/Derivative/DynamicLocalTasks.php
index 55e0721..96f74a8 100644
--- a/src/Plugin/Derivative/DynamicLocalTasks.php
+++ b/src/Plugin/Derivative/DynamicLocalTasks.php
@@ -81,7 +81,11 @@ class DynamicLocalTasks extends DeriverBase implements ContainerDeriverInterface
         ] + $base_plugin_definition;
     }
 
-    foreach ($this->moderatableEntityDefinitions() as $entity_type_id => $entity_type) {
+    $latest_version_entities = array_filter($this->moderatableEntityDefinitions(), function (EntityTypeInterface $type) {
+      return $type->hasLinkTemplate('latest-version');
+    });
+
+    foreach ($latest_version_entities as $entity_type_id => $entity_type) {
       $this->derivatives["$entity_type_id.latest_version_tab"] = [
           'route_name' => "entity.$entity_type_id.latest_version",
           'title' => $this->t('Latest version'),
