All oc_ldap_* gone

Nextcloud version: 20.0.1
Operating system and version: Ubuntu 20.04
Apache or nginx version: Apache/2.4.41 (Ubuntu)
PHP version: 7.4.11

The issue you are facing:
So… I am trying to fix the LDAP for our new internal Nextcloud (still not used by other people)
And somehow I get everything into the LDAP tbles from the AD:

oc_ldap_group_mapping
oc_ldap_group_members
oc_ldap_user_mapping    

So to be able to fix this I tried to delete it all with the “./occ user:delete” or ."/occ group:delete" command, but it did only say that the group or user doesn’t exist. The thing is that I wasn’t able to set a default quota for all of the LDAP users, and it only defaulted back to Unlimited.

So I tried to delete those 3 tables in the database and wanted to get them back with a “.occ maintenance:repair” but it didn’t help…

Now when I try to activate the LDAP again I only get Internal Server Error and the “./occ ldap:” command doesn’t work.

Any ideas what the problem could be?

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

Steps to replicate it:

  1. Delete “oc_ldap_group_mapping”, “oc_ldap_group_members” and “oc_ldap_user_mapping” from the database.

The output of your Nextcloud log in Admin > Logging:

 {"reqId":"Fx1wFDsujVU5s2GJu6oD","level":3,"time":"2020-11-05T10:39:31+01:00","remoteAddr":"192.168.24.234","user":"Kevin","app":"index","method":"GET","url":"/index.php/apps/side_menu/js/script?v=5","message":{"Exception":"Doctrine\\DBAL\\Exception\\TableNotFoundException","Message":"An exception occurred while executing '\n\t\t\tSELECT `ldap_dn`\n\t\t\tFROM `oc_ldap_group_mapping`\n\t\t\tWHERE `owncloud_name` = ?\n\t\t' with params [\"admin\"]:\n\nSQLSTATE[42S02]: Base table or view not found: 1146 Table 'nxtc_db.oc_ldap_group_mapping' doesn't exist","Code":0,"Trace":[{"file":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php","line":169,"function":"convertException","class":"Doctrine\\DBAL\\Driver\\AbstractMySQLDriver","type":"->"},{"file":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php","line":149,"function":"wrapException","class":"Doctrine\\DBAL\\DBALException","type":"::"},{"file":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php","line":162,"function":"driverExceptionDuringQuery","class":"Doctrine\\DBAL\\DBALException","type":"::"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Mapping/AbstractMapping.php","line":98,"function":"execute","class":"Doctrine\\DBAL\\Statement","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Mapping/AbstractMapping.php","line":127,"function":"getXbyY","class":"OCA\\User_LDAP\\Mapping\\AbstractMapping","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Access.php","line":444,"function":"getDNByName","class":"OCA\\User_LDAP\\Mapping\\AbstractMapping","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_LDAP.php","line":1122,"function":"groupname2dn","class":"OCA\\User_LDAP\\Access","type":"->"},{"function":"groupExists","class":"OCA\\User_LDAP\\Group_LDAP","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_Proxy.php","line":65,"function":"call_user_func_array"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Proxy.php","line":167,"function":"walkBackends","class":"OCA\\User_LDAP\\Group_Proxy","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_Proxy.php","line":264,"function":"handleRequest","class":"OCA\\User_LDAP\\Proxy","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":195,"function":"groupExists","class":"OCA\\User_LDAP\\Group_Proxy","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":175,"function":"getGroupObject","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":282,"function":"get","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":271,"function":"getUserIdGroups","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/UserMapping/UserMappingManager.php","line":41,"function":"getUserGroups","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/RuleManager.php","line":94,"function":"getMappingsForUser","class":"OCA\\GroupFolders\\ACL\\UserMapping\\UserMappingManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/ACLManager.php","line":75,"function":"getRulesForFilesByPath","class":"OCA\\GroupFolders\\ACL\\RuleManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/ACLManager.php","line":113,"function":"getRules","class":"OCA\\GroupFolders\\ACL\\ACLManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":138,"function":"getACLPermissionsForPath","class":"OCA\\GroupFolders\\ACL\\ACLManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":88,"function":"getMount","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->"},{"function":"OCA\\GroupFolders\\Mount\\{closure}","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":86,"function":"array_map"},{"file":"/var/www/html/nextcloud/lib/private/Files/Config/MountProviderCollection.php","line":109,"function":"getMountsForUser","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Files/Filesystem.php","line":452,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Files/Filesystem.php","line":377,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/var/www/html/nextcloud/lib/private/legacy/OC_Util.php","line":322,"function":"init","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/var/www/html/nextcloud/lib/base.php","line":1008,"function":"setupFS","class":"OC_Util","type":"::"},{"file":"/var/www/html/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php","Line":42,"Previous":{"Exception":"Doctrine\\DBAL\\Driver\\PDOException","Message":"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nxtc_db.oc_ldap_group_mapping' doesn't exist","Code":"42S02","Trace":[{"file":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php","line":153,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDOStatement","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Mapping/AbstractMapping.php","line":98,"function":"execute","class":"Doctrine\\DBAL\\Statement","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Mapping/AbstractMapping.php","line":127,"function":"getXbyY","class":"OCA\\User_LDAP\\Mapping\\AbstractMapping","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Access.php","line":444,"function":"getDNByName","class":"OCA\\User_LDAP\\Mapping\\AbstractMapping","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_LDAP.php","line":1122,"function":"groupname2dn","class":"OCA\\User_LDAP\\Access","type":"->"},{"function":"groupExists","class":"OCA\\User_LDAP\\Group_LDAP","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_Proxy.php","line":65,"function":"call_user_func_array"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Proxy.php","line":167,"function":"walkBackends","class":"OCA\\User_LDAP\\Group_Proxy","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_Proxy.php","line":264,"function":"handleRequest","class":"OCA\\User_LDAP\\Proxy","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":195,"function":"groupExists","class":"OCA\\User_LDAP\\Group_Proxy","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":175,"function":"getGroupObject","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":282,"function":"get","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":271,"function":"getUserIdGroups","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/UserMapping/UserMappingManager.php","line":41,"function":"getUserGroups","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/RuleManager.php","line":94,"function":"getMappingsForUser","class":"OCA\\GroupFolders\\ACL\\UserMapping\\UserMappingManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/ACLManager.php","line":75,"function":"getRulesForFilesByPath","class":"OCA\\GroupFolders\\ACL\\RuleManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/ACLManager.php","line":113,"function":"getRules","class":"OCA\\GroupFolders\\ACL\\ACLManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":138,"function":"getACLPermissionsForPath","class":"OCA\\GroupFolders\\ACL\\ACLManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":88,"function":"getMount","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->"},{"function":"OCA\\GroupFolders\\Mount\\{closure}","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":86,"function":"array_map"},{"file":"/var/www/html/nextcloud/lib/private/Files/Config/MountProviderCollection.php","line":109,"function":"getMountsForUser","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Files/Filesystem.php","line":452,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Files/Filesystem.php","line":377,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/var/www/html/nextcloud/lib/private/legacy/OC_Util.php","line":322,"function":"init","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/var/www/html/nextcloud/lib/base.php","line":1008,"function":"setupFS","class":"OC_Util","type":"::"},{"file":"/var/www/html/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php","Line":129,"Previous":{"Exception":"PDOException","Message":"SQLSTATE[42S02]: Base table or view not found: 1146 Table 'nxtc_db.oc_ldap_group_mapping' doesn't exist","Code":"42S02","Trace":[{"file":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php","line":127,"function":"execute","class":"PDOStatement","type":"->"},{"file":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Statement.php","line":153,"function":"execute","class":"Doctrine\\DBAL\\Driver\\PDOStatement","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Mapping/AbstractMapping.php","line":98,"function":"execute","class":"Doctrine\\DBAL\\Statement","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Mapping/AbstractMapping.php","line":127,"function":"getXbyY","class":"OCA\\User_LDAP\\Mapping\\AbstractMapping","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Access.php","line":444,"function":"getDNByName","class":"OCA\\User_LDAP\\Mapping\\AbstractMapping","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_LDAP.php","line":1122,"function":"groupname2dn","class":"OCA\\User_LDAP\\Access","type":"->"},{"function":"groupExists","class":"OCA\\User_LDAP\\Group_LDAP","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_Proxy.php","line":65,"function":"call_user_func_array"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Proxy.php","line":167,"function":"walkBackends","class":"OCA\\User_LDAP\\Group_Proxy","type":"->"},{"file":"/var/www/html/nextcloud/apps/user_ldap/lib/Group_Proxy.php","line":264,"function":"handleRequest","class":"OCA\\User_LDAP\\Proxy","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":195,"function":"groupExists","class":"OCA\\User_LDAP\\Group_Proxy","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":175,"function":"getGroupObject","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":282,"function":"get","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Group/Manager.php","line":271,"function":"getUserIdGroups","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/UserMapping/UserMappingManager.php","line":41,"function":"getUserGroups","class":"OC\\Group\\Manager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/RuleManager.php","line":94,"function":"getMappingsForUser","class":"OCA\\GroupFolders\\ACL\\UserMapping\\UserMappingManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/ACLManager.php","line":75,"function":"getRulesForFilesByPath","class":"OCA\\GroupFolders\\ACL\\RuleManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/ACL/ACLManager.php","line":113,"function":"getRules","class":"OCA\\GroupFolders\\ACL\\ACLManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":138,"function":"getACLPermissionsForPath","class":"OCA\\GroupFolders\\ACL\\ACLManager","type":"->"},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":88,"function":"getMount","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->"},{"function":"OCA\\GroupFolders\\Mount\\{closure}","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/nextcloud/apps/groupfolders/lib/Mount/MountProvider.php","line":86,"function":"array_map"},{"file":"/var/www/html/nextcloud/lib/private/Files/Config/MountProviderCollection.php","line":109,"function":"getMountsForUser","class":"OCA\\GroupFolders\\Mount\\MountProvider","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Files/Filesystem.php","line":452,"function":"addMountForUser","class":"OC\\Files\\Config\\MountProviderCollection","type":"->"},{"file":"/var/www/html/nextcloud/lib/private/Files/Filesystem.php","line":377,"function":"initMountPoints","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/var/www/html/nextcloud/lib/private/legacy/OC_Util.php","line":322,"function":"init","class":"OC\\Files\\Filesystem","type":"::"},{"file":"/var/www/html/nextcloud/lib/base.php","line":1008,"function":"setupFS","class":"OC_Util","type":"::"},{"file":"/var/www/html/nextcloud/index.php","line":37,"function":"handleRequest","class":"OC","type":"::"}],"File":"/var/www/html/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php","Line":127}},"CustomMessage":"--"},"userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36","version":"20.0.1.1","id":"5fa3cb7b37c82"}

Fixed…
I took a mysqldump on one of our test nextclouds and just used those commands from it to recreate the LDAP tables.

oc_ldap_group_mapping

DROP TABLE IF EXISTS `oc_ldap_group_mapping`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `oc_ldap_group_mapping` (
  `ldap_dn` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `owncloud_name` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `directory_uuid` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  PRIMARY KEY (`ldap_dn`),
  UNIQUE KEY `owncloud_name_groups` (`owncloud_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPRESSED;
/*!40101 SET character_set_client = @saved_cs_client */;

oc_ldap_group_members

DROP TABLE IF EXISTS `oc_ldap_group_members`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `oc_ldap_group_members` (
  `owncloudname` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `owncloudusers` longtext COLLATE utf8mb4_bin NOT NULL,
  PRIMARY KEY (`owncloudname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPRESSED;
/*!40101 SET character_set_client = @saved_cs_client */;

oc_ldap_user_mapping

DROP TABLE IF EXISTS `oc_ldap_user_mapping`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
CREATE TABLE `oc_ldap_user_mapping` (
  `ldap_dn` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `owncloud_name` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  `directory_uuid` varchar(255) COLLATE utf8mb4_bin NOT NULL DEFAULT '',
  PRIMARY KEY (`owncloud_name`),
  UNIQUE KEY `ldap_dn_users` (`ldap_dn`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPRESSED;
/*!40101 SET character_set_client = @saved_cs_client */;