diff --git a/core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php b/core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php
index 95fca186614fc944976b059e7083913acafb73ec..e4c5d6d15cce3dcdb910bd200db94c693966abb7 100644
--- a/core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php
+++ b/core/lib/Drupal/Core/Asset/LibraryDependencyResolver.php
@@ -65,6 +65,8 @@ protected function doGetDependencies(array $libraries_with_unresolved_dependenci
    * {@inheritdoc}
    */
   public function getMinimalRepresentativeSubset(array $libraries) {
+    assert('count($libraries) === count(array_unique($libraries))', '$libraries can\'t contain duplicate items.');
+
     $minimal = [];
 
     // Determine each library's dependencies.
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index d08e1016c816ccc0d887f573cdd2b5f3a313f0b6..15138a10e574163de07ce56628fa6ab9833c4a1a 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -766,10 +766,10 @@ function system_js_settings_alter(&$settings, AttachedAssetsInterface $assets) {
     }
     // Provide the page with information about the individual asset libraries
     // used, information not otherwise available when aggregation is enabled.
-    $minimal_libraries = $library_dependency_resolver->getMinimalRepresentativeSubset(array_merge(
+    $minimal_libraries = $library_dependency_resolver->getMinimalRepresentativeSubset(array_unique(array_merge(
       $assets->getLibraries(),
       $assets->getAlreadyLoadedLibraries()
-    ));
+    )));
     sort($minimal_libraries);
     $settings['ajaxPageState']['libraries'] = implode(',', $minimal_libraries);
   }
diff --git a/core/tests/Drupal/Tests/Core/Asset/LibraryDependencyResolverTest.php b/core/tests/Drupal/Tests/Core/Asset/LibraryDependencyResolverTest.php
index 40e18210800ba981de63faec7509b5236abc9ceb..6e499d9eaaeadc526f8e901e5bdacf148d80405d 100644
--- a/core/tests/Drupal/Tests/Core/Asset/LibraryDependencyResolverTest.php
+++ b/core/tests/Drupal/Tests/Core/Asset/LibraryDependencyResolverTest.php
@@ -169,4 +169,12 @@ public function testGetMinimalRepresentativeSubset(array $libraries, array $expe
     $this->assertEquals($expected, $this->libraryDependencyResolver->getMinimalRepresentativeSubset($libraries));
   }
 
+  /**
+   * @covers ::getMinimalRepresentativeSubset
+   */
+  public function testGetMinimalRepresentativeSubsetInvalidInput() {
+    $this->setExpectedException(\AssertionError::class, '$libraries can\'t contain duplicate items.');
+    $this->libraryDependencyResolver->getMinimalRepresentativeSubset(['test/no_deps_a', 'test/no_deps_a']);
+  }
+
 }