diff --git a/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php b/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php
index 1ce144680262072e4349ed569eb23116b832f884..bc87de8d5ab01933501ded4f78fdf4bd89448800 100644
--- a/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php
+++ b/core/lib/Drupal/Core/Plugin/CategorizingPluginManagerTrait.php
@@ -89,10 +89,14 @@ public function getSortedDefinitions(array $definitions = NULL, $label_key = 'la
     // Sort the plugins first by category, then by label.
     $definitions = $definitions ?? $this->getDefinitions();
     uasort($definitions, function ($a, $b) use ($label_key) {
-      if ((string) $a['category'] != (string) $b['category']) {
-        return strnatcasecmp($a['category'], $b['category']);
+      $a_category = (string) $a['category'] ?? '';
+      $b_category = (string) $b['category'] ?? '';
+      if ($a_category != $b_category) {
+        return strnatcasecmp($a_category, $b_category);
       }
-      return strnatcasecmp($a[$label_key], $b[$label_key]);
+      $a_label = $a[$label_key] ?? '';
+      $b_label = $b[$label_key] ?? '';
+      return strnatcasecmp($a_label, $b_label);
     });
     return $definitions;
   }