diff --git a/postorius_ldap_membership_management/management/commands/syncldapmemberships.py b/postorius_ldap_membership_management/management/commands/syncldapmemberships.py
index fffe7106864eae6052ac6e58d89163faadcb47f4..9f7e672b1f2b76bd13ce98aa8b385a4ad8a370b4 100644
--- a/postorius_ldap_membership_management/management/commands/syncldapmemberships.py
+++ b/postorius_ldap_membership_management/management/commands/syncldapmemberships.py
@@ -14,6 +14,20 @@ from allauth.account.models import EmailAddress
 
 logger = logging.getLogger(__name__)
 
+def execute_ldap_search_without_hiding_errors(search, connection, filterargs=(), escape=True):
+	'''If an LDAPError occurs during search.execute, it logs the error and returns
+	an empty list of results. This behavor is indistinguishable from a query
+	with no results.'''
+	if not isinstance(search, LDAPSearch):
+		raise NotImplementedError(f'{type(search)} is not supported by django_auth_ldap_remoteuser')
+	# This is a copy of django_auth_ldap.config.LDAPSearch.execute without the
+	# ldap.LDAPError eating try-except block
+	if escape:
+		filterargs = search._escape_filterargs(filterargs)
+	filterstr = search.filterstr % filterargs
+	results = connection.search_s(search.base_dn, search.scope, filterstr, search.attrlist)
+	return search._process_results(results)
+
 class Command(BaseCommand):
 	can_import_settings = True
 	help = 'Synchronize mailing list memberships from a LDAP server'
@@ -29,9 +43,6 @@ class Command(BaseCommand):
 
 		client = get_mailman_client()
 
-		user_search = django.conf.settings.AUTH_LDAP_USER_SEARCH_ALL_NAME
-		results = user_search.execute(conn)
-		ldap_users = [list(attr.values())[0][0] for dn, attr in results ]
 		django_users = get_user_model().objects.all()
 		backref_mapping = {'member': 'members', 'moderator': 'moderators', 'owner': 'owners'}
 		mm_users = {}
@@ -61,11 +72,11 @@ class Command(BaseCommand):
 			for membership_type in ldap_setting:
 				if not ldap_setting[membership_type].get('enabled'):
 					continue
-				ldap_members = LDAPSearch(
+				ldap_members = execute_ldap_search_without_hiding_errors(LDAPSearch(
 						ldap_setting[membership_type]['dn'], ldap.SCOPE_SUBTREE,
 						ldap_setting[membership_type]['filter'],
-						[ldap_setting[membership_type]['username_attr']]).execute(conn)
-				ldap_member_names = [list(attr.values())[0][0] for dn, attr in ldap_members ]
+						[ldap_setting[membership_type]['username_attr']]), conn)
+				ldap_member_names = [list(attr.values())[0][0] for dn, attr in ldap_members]
 
 				# we refetch the mm_list each time because of wired caching problems
 				mm_list = client.get_list(list_name)