diff --git a/core/lib/Drupal/Core/Extension/ModuleDependencyMessageTrait.php b/core/lib/Drupal/Core/Extension/ModuleDependencyMessageTrait.php
index d91085a0e68a964474371d3ecc663eb99f760aa5..948e9d8152250e9f19645fed9400849867c7c0b4 100644
--- a/core/lib/Drupal/Core/Extension/ModuleDependencyMessageTrait.php
+++ b/core/lib/Drupal/Core/Extension/ModuleDependencyMessageTrait.php
@@ -44,7 +44,7 @@ public function checkDependencyMessage(array $modules, $dependency, Dependency $
         $constraint_string = $dependency_object->getConstraintString();
         return $this->t('@module_name (<span class="admin-missing">incompatible with</span> version @version)', [
           '@module_name' => "$module_name ($constraint_string)",
-          '@version' => $modules[$dependency]->info['version'],
+          '@version' => $modules[$dependency]->info['version'] ?? '* ? *',
         ]);
       }
     }
diff --git a/core/modules/system/tests/src/Functional/Module/DependencyTest.php b/core/modules/system/tests/src/Functional/Module/DependencyTest.php
index ebf0b7dd8c66738d919a409dc8d8f4549a0bc193..fd3aa176f8da59f6ce112a248d6d40e7a3dbc628 100644
--- a/core/modules/system/tests/src/Functional/Module/DependencyTest.php
+++ b/core/modules/system/tests/src/Functional/Module/DependencyTest.php
@@ -112,16 +112,36 @@ public function testNoVersionInfo() {
     mkdir($path, 0777, TRUE);
     file_put_contents("$path/system_no_module_version_dependency_test.info.yml", Yaml::encode($info));
 
+    // Include a version in the dependency definition, to test the 'incompatible
+    // with version' message when no version is given in the required module.
     $info = [
       'type' => 'module',
       'core_version_requirement' => '*',
       'name' => 'System no module version test',
-      'dependencies' => ['system_no_module_version_dependency_test'],
+      'dependencies' => ['system_no_module_version_dependency_test(>1.x)'],
     ];
     $path = $this->siteDirectory . '/modules/system_no_module_version_test';
     mkdir($path, 0777, TRUE);
     file_put_contents("$path/system_no_module_version_test.info.yml", Yaml::encode($info));
 
+    // Ensure that the module list page is displayed without errors.
+    $this->drupalGet('admin/modules');
+    $this->assertSession()->pageTextContains('System no module version test');
+    $this->assertSession()->pageTextContains('System no module version dependency test (>1.x) (incompatible with version');
+    $this->assertSession()->fieldEnabled('modules[system_no_module_version_dependency_test][enable]');
+    $this->assertSession()->fieldDisabled('modules[system_no_module_version_test][enable]');
+
+    // Remove the version requirement from the the dependency definition
+    $info = [
+      'type' => 'module',
+      'core_version_requirement' => '*',
+      'name' => 'System no module version test',
+      'dependencies' => ['system_no_module_version_dependency_test'],
+    ];
+
+    $path = $this->siteDirectory . '/modules/system_no_module_version_test';
+    file_put_contents("$path/system_no_module_version_test.info.yml", Yaml::encode($info));
+
     $this->drupalGet('admin/modules');
     $this->assertSession()->pageTextContains('System no module version dependency test');
     $this->assertSession()->pageTextContains('System no module version test');