diff --git a/core/modules/views/src/Plugin/ViewsHandlerManager.php b/core/modules/views/src/Plugin/ViewsHandlerManager.php
index 5244147..7356986 100644
--- a/core/modules/views/src/Plugin/ViewsHandlerManager.php
+++ b/core/modules/views/src/Plugin/ViewsHandlerManager.php
@@ -116,6 +116,7 @@ public function getHandler($item, $override = NULL) {
     }
 
     // Finally, use the 'broken' handler.
+    debug($item);
     return $this->createInstance('broken', array('original_configuration' => $item));
   }
 
diff --git a/core/modules/views/src/Tests/Handler/HandlerAllTest.php b/core/modules/views/src/Tests/Handler/HandlerAllTest.php
index 84579a8..a5d2a5b 100644
--- a/core/modules/views/src/Tests/Handler/HandlerAllTest.php
+++ b/core/modules/views/src/Tests/Handler/HandlerAllTest.php
@@ -11,6 +11,7 @@
 use Drupal\views\ViewExecutable;
 use Drupal\views\Plugin\views\HandlerBase;
 use Drupal\views\Plugin\views\filter\InOperator;
+use Drupal\views\Views;
 
 /**
  * Tests instances of all handlers.
@@ -53,8 +54,12 @@ public function testHandlers() {
     $this->drupalCreateContentType(array('type' => 'article'));
     $this->addDefaultCommentField('node', 'article');
 
+    $additional_tables = [];
+    $additional_tables['users_field_data'][] = 'user__roles';
+
     $object_types = array_keys(ViewExecutable::getHandlerTypes());
-    foreach ($this->container->get('views.views_data')->get() as $base_table => $info) {
+    $all_views_data = $this->container->get('views.views_data')->get();
+    foreach ($all_views_data as $base_table => $info) {
       if (!isset($info['table']['base'])) {
         continue;
       }
@@ -68,27 +73,14 @@ public function testHandlers() {
 
       // Go through all fields and there through all handler types.
       foreach ($info as $field => $field_info) {
-        // Table is a reserved key for the metainformation.
-        if ($field != 'table' && !in_array("$base_table:$field", $exclude)) {
-          $item = array(
-            'table' => $base_table,
-            'field' => $field,
-          );
-          foreach ($object_types as $type) {
-            if (isset($field_info[$type]['id'])) {
-              $options = array();
-              if ($type == 'filter') {
-                $handler = $this->container->get("plugin.manager.views.$type")->getHandler($item);
-                // Set the value to use for the filter based on the filter type.
-                if ($handler instanceof InOperator) {
-                  $options['value'] = array(1);
-                }
-                else {
-                  $options['value'] = 1;
-                }
-              }
-              $view->addHandler('default', $type, $base_table, $field, $options);
-            }
+        $this->doAddHandler($field, $base_table, $exclude, $object_types, $field_info, $view);
+      }
+
+      // Add also handlers for additional tables.
+      if (isset($additional_tables[$base_table])) {
+        foreach ($additional_tables[$base_table] as $additional_table) {
+          foreach ($all_views_data[$additional_table] as $field => $field_info) {
+            $this->doAddHandler($field, $additional_table, $exclude, $object_types, $field_info, $view);
           }
         }
       }
@@ -110,7 +102,52 @@ public function testHandlers() {
                 '@type' => $type,
                 '%class' => get_class($handler),
               )));
+            $handler_types = Views::getHandlerTypes();
+            $handler_type = $handler_types[$type]['type'];
+            $this->assertFalse(is_subclass_of($handler, '\\Drupal\\views\\Plugin\\views\\' . $handler_type . '\\Broken'));
+          }
+        }
+      }
+    }
+  }
+
+  /**
+   * Adds a specific handler to a view.
+   *
+   * @param string $field
+   *   The field name
+   * @param string $table
+   *   The table table.
+   * @param array $exclude
+   *   An array of excluded fields
+   * @param string[] $handler_types
+   *   The handler types
+   * @param array $field_info
+   *   The field info.
+   * @param \Drupal\views\ViewExecutable $view
+   */
+  protected function doAddHandler($field, $table, $exclude, $handler_types, $field_info, $view) {
+    // Table is a reserved key for the metainformation.
+    if ($field != 'table' && !in_array("$table:$field", $exclude)) {
+      $item = array(
+        'table' => $table,
+        'field' => $field,
+      );
+      foreach ($handler_types as $type) {
+        if (isset($field_info[$type]['id'])) {
+          $options = array();
+          if ($type == 'filter') {
+            $handler = $this->container->get("plugin.manager.views.$type")
+              ->getHandler($item);
+            // Set the value to use for the filter based on the filter type.
+            if ($handler instanceof InOperator) {
+              $options['value'] = array(1);
+            }
+            else {
+              $options['value'] = 1;
+            }
           }
+          $view->addHandler('default', $type, $table, $field, $options);
         }
       }
     }
