diff --git a/portal/service/users.py b/portal/service/users.py
index a17e1f63cd59c2488744e711bb5560927be2787e..9c808869f6c05610f9a0ac98a5abd647d25b6586 100644
--- a/portal/service/users.py
+++ b/portal/service/users.py
@@ -50,10 +50,11 @@ def ldap_get_uco_for_user(username: str) -> int:
 
     """
     user_dict = ldap_wrapper.search_dict(f"uid={username},ou=People")
+    log.debug(f"[LDAP] User ({username}): {user_dict}")
     if not user_dict:
         return 0
     desc = user_dict[0]['description']
-    uco = [str(u) for u in desc if str(u).startswith('UCO=')]
+    uco = [u.decode('utf-8') for u in desc if u.decode('utf-8').startswith('UCO=')]
     if not uco:
         return 0
     return int(uco[0][4:])
diff --git a/portal/tools/ldap_client.py b/portal/tools/ldap_client.py
index c69d5618428b62a8cd44789d05254f5ec6bf6088..126d7d333b6c5060b49243951b2ddecbfab93484 100644
--- a/portal/tools/ldap_client.py
+++ b/portal/tools/ldap_client.py
@@ -52,12 +52,14 @@ class LDAPWrapper(object):
         Returns(LDAPObject): LDAP Object instance
         """
         if not self._ldap_client and self.is_enabled:
-            self._ldap_client = ldap.initialize(self.ldap_url)
+            self._ldap_client = ldap.initialize(self.ldap_url, bytes_mode=False)
         return self._ldap_client
 
     def search(self, selector: str):
         selector = selector + self.selector_base
-        return self.ldap.search_s(selector, ldap.SCOPE_SUBTREE, "objectclass=*")
+        result = self.ldap.search_s(selector, ldap.SCOPE_SUBTREE, "objectclass=*")
+        log.debug(f"[LDAP] Search ({selector}): {result}")
+        return result
 
     def search_dict(self, *args, **kwargs):
         l_res = self.search(*args, **kwargs)