diff --git a/src/Plugin/search_api_autocomplete/search/Views.php b/src/Plugin/search_api_autocomplete/search/Views.php
index 2db6e31..ea93389 100644
--- a/src/Plugin/search_api_autocomplete/search/Views.php
+++ b/src/Plugin/search_api_autocomplete/search/Views.php
@@ -21,7 +21,8 @@
  *   group_label = @Translation("Search views"),
  *   group_description = @Translation("Searches provided by Views"),
  *   provider = "views",
- *   deriver = "Drupal\search_api_autocomplete\Plugin\search_api_autocomplete\search\ViewsDeriver"
+ *   deriver =
+ *   "Drupal\search_api_autocomplete\Plugin\search_api_autocomplete\search\ViewsDeriver"
  * )
  */
 class Views extends SearchPluginBase implements PluginFormInterface {
@@ -169,6 +170,21 @@ public function createQuery($keys, array $data = []) {
     }
 
     $view->preExecute();
+
+    // If the fulltext filter was set to "Required", the search query will be
+    // aborted during the build (unless keys were given), potentially ending up
+    // with an incomplete set of filters. To avoid this, we remove the filter's
+    // "Required" setting.
+    if (!$single_field_filter && trim($keys) === '') {
+      /** @var \Drupal\views\Plugin\views\filter\FilterPluginBase $filter */
+      foreach ($view->display_handler->getHandlers('filter') as $filter) {
+        // In theory, we only need to remove the setting for our own "Search:
+        // Fulltext search" filter – but it's really both simpler and safer to
+        // just do it for all of them.
+        $filter->options['expose']['required'] = FALSE;
+      }
+    }
+
     $view->build();
 
     $query_plugin = $view->getQuery();
diff --git a/tests/search_api_autocomplete_test/config/install/views.view.search_api_autocomplete_test_view.yml b/tests/search_api_autocomplete_test/config/install/views.view.search_api_autocomplete_test_view.yml
index f545e5d..6e9d4e3 100644
--- a/tests/search_api_autocomplete_test/config/install/views.view.search_api_autocomplete_test_view.yml
+++ b/tests/search_api_autocomplete_test/config/install/views.view.search_api_autocomplete_test_view.yml
@@ -79,7 +79,7 @@ display:
             use_operator: true
             operator: keys_op
             identifier: keys
-            required: false
+            required: true
             remember: false
             multiple: false
             remember_roles:
@@ -126,6 +126,44 @@ display:
               anonymous: '0'
               administrator: '0'
           is_grouped: false
+        search_api_language:
+          id: search_api_language
+          table: search_api_index_autocomplete_search_index
+          field: search_api_language
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: in
+          value:
+            '***LANGUAGE_language_interface***': '***LANGUAGE_language_interface***'
+          group: 1
+          exposed: false
+          expose:
+            operator_id: ''
+            label: ''
+            description: ''
+            use_operator: false
+            operator: ''
+            identifier: ''
+            required: false
+            remember: false
+            multiple: false
+            remember_roles:
+              authenticated: authenticated
+            reduce: false
+          is_grouped: false
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: true
+            widget: select
+            multiple: false
+            remember: false
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          plugin_id: search_api_language
       sorts: {  }
       title: 'Search API Autocomplete Test view'
       header:
diff --git a/tests/src/FunctionalJavascript/IntegrationTest.php b/tests/src/FunctionalJavascript/IntegrationTest.php
index 74a7609..ad0f588 100644
--- a/tests/src/FunctionalJavascript/IntegrationTest.php
+++ b/tests/src/FunctionalJavascript/IntegrationTest.php
@@ -254,9 +254,12 @@ protected function checkSearchAutocomplete($click_url_suggestion = FALSE) {
     ];
     $this->assertEquals($expected, $suggestions);
 
+    // Make sure the query looks as it should.
     /** @var \Drupal\search_api\Query\QueryInterface $query */
     list($query) = $this->getMethodArguments('backend', 'getAutocompleteSuggestions');
+    $this->assertFalse($query->wasAborted());
     $this->assertEquals(['body'], $query->getFulltextFields());
+    $this->assertEquals(['en'], array_values($query->getLanguages()));
 
     if ($click_url_suggestion) {
       // Click the URL suggestion and verify it correctly redirects the browser
