PHP Error: ldap_search(): Search: Protocol error at /var/www/html/apps/user_ldap/lib/LDAP.php#341

Nextcloud version (eg, 20.0.5): 19.0.7
Operating system and version (eg, Ubuntu 20.04): Ubuntu 18.04.5
Apache or nginx version (eg, Apache 2.4.25): 2.4.29-1ubuntu4.14
PHP version (eg, 7.4): 7.2.24-0ubuntu0.18.04.7

The issue you are facing:

As per ticket 105893 we deployed an LDAP user with incorrect details and tried to fix it after the fact. Despite reverting their LDAP record back to their previous (incorrect) values we can’t delete the user in order to fix the LDAP and recreate it … on looking through the logs however we appear to be encountering an LDAP protocol error (as below)

Is this the first time you’ve seen this error? (Y/N): Y

Steps to replicate it:

  1. Attempt to delete a user deployed via LDAP

The output of your Nextcloud log in Admin > Logging:

[PHP] Error: Error: ldap_search(): Search: Protocol error at /var/www/html/apps/user_ldap/lib/LDAP.php#341 at <<closure>>

 0. /var/www/html/apps/user_ldap/lib/LDAP.php line 229
    OC\Log\ErrorHandler::onError("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
 1. <<closure>>
    OCA\User_LDAP\LDAP->OCA\User_LDAP\{closure}("*** sensitive parameters replaced ***")
 2. <<closure>>
    ldap_search("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
 3. /var/www/html/apps/user_ldap/lib/LDAP.php line 341
    call_user_func_array("ldap_search", ["*** sensitive  ... "])
 4. /var/www/html/apps/user_ldap/lib/LDAP.php line 234
    OCA\User_LDAP\LDAP->invokeLDAPMethod("*** sensitive parameters replaced ***")
 5. <<closure>>
    OCA\User_LDAP\LDAP->search("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***")
 6. /var/www/html/apps/user_ldap/lib/Access.php line 1094
    call_user_func_array([OCA\User_LDAP\L ... "], ["*** sensitive  ... "])
 7. /var/www/html/apps/user_ldap/lib/Access.php line 1098
    OCA\User_LDAP\Access->OCA\User_LDAP\{closure}("*** sensitive parameters replaced ***")
 8. /var/www/html/apps/user_ldap/lib/Access.php line 1151
    OCA\User_LDAP\Access->invokeLDAPMethod("*** sensitive parameters replaced ***")
 9. /var/www/html/apps/user_ldap/lib/Access.php line 1323
    OCA\User_LDAP\Access->executeSearch("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", 25, 50)
10. /var/www/html/apps/user_ldap/lib/Access.php line 991
    OCA\User_LDAP\Access->search("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", 25, 50)
11. /var/www/html/apps/user_ldap/lib/Access.php line 875
    OCA\User_LDAP\Access->searchUsers("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", 25, 50)
12. /var/www/html/apps/user_ldap/lib/User_LDAP.php line 276
    OCA\User_LDAP\Access->fetchListOfUsers("*** sensitive parameter replaced ***", "*** sensitive parameter replaced ***", 25, 50)
13. /var/www/html/apps/user_ldap/lib/User_Proxy.php line 176
    OCA\User_LDAP\User_LDAP->getUsers("", 25, 50)
14. /var/www/html/lib/private/User/Manager.php line 246
    OCA\User_LDAP\User_Proxy->getUsers("", 25, 50)
15. /var/www/html/apps/provisioning_api/lib/Controller/UsersController.php line 177
    OC\User\Manager->search("", 25, 50)
16. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 170
    OCA\Provisioning_API\Controller\UsersController->getUsersDetails("", 25, 50)
17. /var/www/html/lib/private/AppFramework/Http/Dispatcher.php line 100
    OC\AppFramework\Http\Dispatcher->executeController(OCA\Provisioning ... {}, "getUsersDetails")
18. /var/www/html/lib/private/AppFramework/App.php line 137
    OC\AppFramework\Http\Dispatcher->dispatch(OCA\Provisioning ... {}, "getUsersDetails")
19. /var/www/html/lib/private/AppFramework/Routing/RouteActionHandler.php line 47
    OC\AppFramework\App::main("OCA\\Provisioni ... r", "getUsersDetails", OC\AppFramework\ ... {}, {_route: "ocs.pr ... "})
20. <<closure>>
    OC\AppFramework\Routing\RouteActionHandler->__invoke({_route: "ocs.pr ... "})
21. /var/www/html/lib/private/Route/Router.php line 297
    call_user_func(OC\AppFramework\ ... {}, {_route: "ocs.pr ... "})
22. /var/www/html/ocs/v1.php line 88
    OC\Route\Router->match("/ocsapp/cloud/users/details")
23. /var/www/html/ocs/v2.php line 24
    require_once("/var/www/html/ocs/v1.php")

GET /ocs/v2.php/cloud/users/details?offset=50&limit=25&search=
from 172.18.16.37 by a776a210-ea79-1039-94f2-d7c2f56c9597 at 2021-02-03T02:55:13+00:00

I used the following to resolve this issue.