diff --git a/core/lib/Drupal/Core/TypedData/ListDataDefinition.php b/core/lib/Drupal/Core/TypedData/ListDataDefinition.php
index 75e93e8..c052045 100644
--- a/core/lib/Drupal/Core/TypedData/ListDataDefinition.php
+++ b/core/lib/Drupal/Core/TypedData/ListDataDefinition.php
@@ -86,6 +86,9 @@ public function getClass() {
       // the default list class from the item type.
       $item_type_definition = \Drupal::typedDataManager()
         ->getDefinition($this->getItemDefinition()->getDataType());
+      if (!$item_type_definition) {
+        throw new \LogicException(format_string('An invalid data type %plugin_id has been specified for list items.', array('%plugin_id' => $this->getItemDefinition()->getDataType())));
+      }
       return $item_type_definition['list_class'];
     }
   }
