diff --git a/django/contrib/admin/filters.py b/django/contrib/admin/filters.py
index 9dbd8a8f26..b35460ce7d 100644
--- a/django/contrib/admin/filters.py
+++ b/django/contrib/admin/filters.py
@@ -132,7 +132,9 @@ class FieldListFilter(ListFilter):
     def queryset(self, request, queryset):
         try:
             return queryset.filter(**self.used_parameters)
-        except ValidationError as e:
+        except (ValueError, ValidationError) as e:
+            # Fields may raise a ValueError or ValidationError when converting
+            # the parameters to the correct type.
             raise IncorrectLookupParameters(e)
 
     @classmethod
diff --git a/docs/releases/1.11.3.txt b/docs/releases/1.11.3.txt
index f273a36e9f..5b3b1066a9 100644
--- a/docs/releases/1.11.3.txt
+++ b/docs/releases/1.11.3.txt
@@ -18,3 +18,6 @@ Bugfixes
 
 * Fixed an incorrect ``DisallowedModelAdminLookup`` exception when using
   a nested reverse relation in ``list_filter`` (:ticket:`28262`).
+
+* Fixed admin's ``FieldListFilter.get_queryset()`` crash on invalid input
+  (:ticket:`28202`).
diff --git a/tests/admin_filters/tests.py b/tests/admin_filters/tests.py
index 3f2f33bf3c..06b795b2db 100644
--- a/tests/admin_filters/tests.py
+++ b/tests/admin_filters/tests.py
@@ -6,6 +6,7 @@ from django.contrib.admin import (
     AllValuesFieldListFilter, BooleanFieldListFilter, ModelAdmin,
     RelatedOnlyFieldListFilter, SimpleListFilter, site,
 )
+from django.contrib.admin.options import IncorrectLookupParameters
 from django.contrib.admin.views.main import ChangeList
 from django.contrib.auth.admin import UserAdmin
 from django.contrib.auth.models import User
@@ -763,6 +764,13 @@ class ListFiltersTests(TestCase):
         queryset = changelist.get_queryset(request)
         self.assertEqual(list(queryset), [self.bio_book, self.djangonaut_book])
 
+    def test_fieldlistfilter_invalid_lookup_parameters(self):
+        """Filtering by an invalid value."""
+        modeladmin = BookAdmin(Book, site)
+        request = self.request_factory.get('/', {'author__id__exact': 'StringNotInteger!'})
+        with self.assertRaises(IncorrectLookupParameters):
+            self.get_changelist(request, Book, modeladmin)
+
     def test_simplelistfilter(self):
         modeladmin = DecadeFilterBookAdmin(Book, site)
 
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 7c3190574c..cd323a10cf 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -165,7 +165,7 @@ class CustomArticleAdmin(admin.ModelAdmin):
 
 
 class ThingAdmin(admin.ModelAdmin):
-    list_filter = ('color__warm', 'color__value', 'pub_date',)
+    list_filter = ('color', 'color__warm', 'color__value', 'pub_date')
 
 
 class InquisitionAdmin(admin.ModelAdmin):