diff --git a/src/Template/ComponentsInfo.php b/src/Template/ComponentsInfo.php
index 189dfd1be9cc8a150c9bd465fdaee5b7d119377e..63807bdf2f2c108ffb86338e8d312d0232bfb22b 100644
--- a/src/Template/ComponentsInfo.php
+++ b/src/Template/ComponentsInfo.php
@@ -124,14 +124,16 @@ class ComponentsInfo {
 
     foreach ($extension_list->getAllInstalledInfo() as $name => $extension_info) {
       // Find the components info.
-      $info = !empty($extension_info['components']) ? $extension_info['components'] : [];
+      $info = isset($extension_info['components']) && is_array($extension_info['components']) ? $extension_info['components'] : [];
 
       // Look for namespaces using 1.x API (backwards compatibility).
       if (!isset($info['namespaces']) && isset($extension_info['component-libraries'])) {
         $this->logWarning(sprintf('Components 8.x-1.x API is deprecated in components:8.x-2.0 and is removed from components:3.0.0. Update the %s.info.yml file to replace the component-libraries.[namespace].paths data with components.namespaces.[namespace]. See https://www.drupal.org/node/3082817', $name));
-        foreach ($extension_info['component-libraries'] as $namespace => $namespace_data) {
-          if (!empty($namespace_data['paths'])) {
-            $info['namespaces'][$namespace] = $namespace_data['paths'];
+        if (is_array($extension_info['component-libraries'])) {
+          foreach ($extension_info['component-libraries'] as $namespace => $namespace_data) {
+            if (!empty($namespace_data['paths'])) {
+              $info['namespaces'][$namespace] = $namespace_data['paths'];
+            }
           }
         }
       }