diff --git a/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php b/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php
index a8b71c7bbb6963623aa4bc29eb54788a98a6d4da..013402c5c383d99cf295f6fbdfbeacdcccfbc259 100644
--- a/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php
+++ b/core/modules/serialization/src/EventSubscriber/UserRouteAlterSubscriber.php
@@ -63,7 +63,7 @@ public function onRoutingAlterAddFormats(RouteBuildEvent $event) {
     foreach ($route_names as $route_name) {
       if ($route = $routes->get($route_name)) {
         $formats = explode('|', $route->getRequirement('_format'));
-        $formats = array_unique($formats + $this->serializerFormats);
+        $formats = array_unique(array_merge($formats, $this->serializerFormats));
         $route->setRequirement('_format', implode('|', $formats));
       }
     }
diff --git a/core/modules/user/tests/src/Functional/UserLoginHttpTest.php b/core/modules/user/tests/src/Functional/UserLoginHttpTest.php
index 356544119b66c58e1bfa78e320de2531bd415ff5..29b97277c0b1ea8374633b5ca58c5b1a2fda0530 100644
--- a/core/modules/user/tests/src/Functional/UserLoginHttpTest.php
+++ b/core/modules/user/tests/src/Functional/UserLoginHttpTest.php
@@ -10,6 +10,7 @@
 use Psr\Http\Message\ResponseInterface;
 use Symfony\Component\Serializer\Encoder\JsonEncoder;
 use Symfony\Component\Serializer\Encoder\XmlEncoder;
+use Drupal\hal\Encoder\JsonEncoder as HALJsonEncoder;
 use Symfony\Component\Serializer\Serializer;
 
 /**
@@ -19,6 +20,13 @@
  */
 class UserLoginHttpTest extends BrowserTestBase {
 
+  /**
+   * Modules to install.
+   *
+   * @var array
+   */
+  public static $modules = ['hal'];
+
   /**
    * The cookie jar.
    *
@@ -39,7 +47,7 @@ class UserLoginHttpTest extends BrowserTestBase {
   protected function setUp() {
     parent::setUp();
     $this->cookies = new CookieJar();
-    $encoders = [new JsonEncoder(), new XmlEncoder()];
+    $encoders = [new JsonEncoder(), new XmlEncoder(), new HALJsonEncoder()];
     $this->serializer = new Serializer([], $encoders);
   }
 
@@ -90,7 +98,7 @@ public function testLogin() {
         /** @var \Drupal\Core\Extension\ModuleInstaller $module_installer */
         $module_installer = $this->container->get('module_installer');
         $module_installer->install(['serialization']);
-        $formats = ['json', 'xml'];
+        $formats = ['json', 'xml', 'hal_json'];
       }
       else {
         // Without the serialization module only JSON is supported.