Fail to delete test domains

Bug Report Template

Description

Staff indicated they couldn’t add sites. Also saw a series of .test domains/accounts created. Tried removing them first, and it errors when deleting.

Steps to Reproduce

delete from web interface, or run DeleteDomain --force apiscp-int-ljjwijjewaryemaq.test

Expected Behavior

Account gets deleted

Actual Behavior

# env DEBUG=1 DeleteDomain --force apiscp-int-ljjwijjewaryemaq.test
DEBUG  : Running hooks for `apiscp-int-ljjwijjewaryemaq.test' (user: `jdbgredxddbxaqed')
DEBUG  : 0.00042: Webapp_Module -> _delete
DEBUG  : 0.00001: Sql_Module -> _delete
DEBUG  : 0.00088: Php_Module -> _delete
DEBUG  : 0.00019: Letsencrypt_Module -> _delete
DEBUG  : 0.00001: Dav_Module -> _delete
DEBUG  : 0.00001: Spamfilter_Module -> _delete
DEBUG  : 0.00120: Majordomo_Module -> _delete
DEBUG  : 0.00001: Crontab_Module -> _delete
DEBUG  : 0.00001: Email_Module -> _delete
DEBUG  : 0.00001: Ssh_Module -> _delete
DEBUG  : 0.00001: Pgsql_Module -> _delete
DEBUG  : 0.00001: Ftp_Module -> _delete
ERROR  : Auth_Module::_getAPIQueryFragment(): cannot get billing invoice for API key
         0. Error_Reporter::add_error("cannot get billing invoice for API key", )
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("cannot get billing invoice for API key")
            [/usr/local/apnscp/lib/modules/auth.php:428]
         2. Auth_Module->_getAPIQueryFragment()
            [/usr/local/apnscp/lib/modules/auth.php:1170]
         3. Auth_Module->_get_api_keys_real("jdbgredxddbxaqed")
            [/usr/local/apnscp/lib/modules/auth.php:1359]
         4. Auth_Module->get_api_keys()
            [/usr/local/apnscp/lib/modules/auth.php:1334]
         5. Auth_Module->_delete()
            [/usr/local/apnscp/lib/Util/Account/Hooks.php:140]
         6. Util_Account_Hooks->_process("delete", )
            [/usr/local/apnscp/lib/Util/Account/Hooks.php:50]
         7. Util_Account_Hooks->run("delete")
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:208]
         8. Opcenter\Account\Delete->processHooks()
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:242]
         9. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]
DEBUG  : 0.00123: Auth_Module -> _delete
DEBUG  : 0.00001: Aliases_Module -> _delete
DEBUG  : 0.00062: User_Module -> _delete
DEBUG  : 0.00001: Tomcat_Module -> _delete
DEBUG  : 0.00001: Ssl_Module -> _delete
DEBUG  : 0.00003: Bandwidth_Module -> _delete
DEBUG  : 0.00001: Web_Module -> _delete
DEBUG  : 0.00001: Cgroup_Module -> _delete
DEBUG  : 0.00001: Mysql_Module -> _delete
DEBUG  : 0.00001: Ipinfo_Module -> _delete
DEBUG  : 0.00015: Dns_Module -> _delete
DEBUG  : 0.00001: Billing_Module -> _delete
DEBUG  : 0.00001: Site_Module -> _delete
WARNING: Opcenter\Provisioning\Pam::disable(): pam service `ssh' not enabled
WARNING: Opcenter\Provisioning\Pam::disable(): pam service `ftp' not enabled
WARNING: Opcenter\Provisioning\Apache::mapWrap(): not removing `www.' from `apache.domainmap': key `site29' does not match challenge `site34'
DEBUG  : webuser `apache' does not exist
WARNING: fopen(/etc/projects): Failed to open stream: No such file or directory
[/usr/local/apnscp/lib/Opcenter/Map/Textfile.php:52]
         0. fopen("/etc/projects", "r")
            [/usr/local/apnscp/lib/Opcenter/Map/Textfile.php:52]
         1. Opcenter\Map\Textfile->__construct("/etc/projects", "r", ":", true)
            [/usr/local/apnscp/lib/Opcenter/Filesystem/Quota/Project.php:485]
         2. Opcenter\Filesystem\Quota\Project->guessId("/home/virtual/site34/shadow")
            [/usr/local/apnscp/lib/Opcenter/Filesystem/Quota/Project.php:331]
         3. Opcenter\Filesystem\Quota\Project->remove("/home/virtual/site34/shadow", true)
            [/usr/local/apnscp/lib/Opcenter/Service/Validators/Diskquota/Group.php:90]
         4. Opcenter\Service\Validators\Diskquota\Group->reconfigure("DEFAULT", null, Opcenter\SiteConfiguration)
            [/usr/local/apnscp/lib/Opcenter/Service/Validators/Diskquota/Group.php:100]
         5. Opcenter\Service\Validators\Diskquota\Group->depopulate(Opcenter\SiteConfiguration)
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:287]
         6. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]
DEBUG  : Firing *.end
ERROR  : unknown(): failed to remove site `site34': fatal(): Failed to open file `/etc/projects'
         0. Error_Reporter::trigger_fatal("Failed to open file `/etc/projects'", ["/etc/projects"])
            [/usr/local/apnscp/lib/log_wrapper.php:50]
         1. fatal("Failed to open file `%s'", "/etc/projects")
            [/usr/local/apnscp/lib/Opcenter/Map/Textfile.php:53]
         2. Opcenter\Map\Textfile->__construct("/etc/projects", "r", ":", true)
            [/usr/local/apnscp/lib/Opcenter/Filesystem/Quota/Project.php:485]
         3. Opcenter\Filesystem\Quota\Project->guessId("/home/virtual/site34/shadow")
            [/usr/local/apnscp/lib/Opcenter/Filesystem/Quota/Project.php:331]
         4. Opcenter\Filesystem\Quota\Project->remove("/home/virtual/site34/shadow", true)
            [/usr/local/apnscp/lib/Opcenter/Service/Validators/Diskquota/Group.php:90]
         5. Opcenter\Service\Validators\Diskquota\Group->reconfigure("DEFAULT", null, Opcenter\SiteConfiguration)
            [/usr/local/apnscp/lib/Opcenter/Service/Validators/Diskquota/Group.php:100]
         6. Opcenter\Service\Validators\Diskquota\Group->depopulate(Opcenter\SiteConfiguration)
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:287]
         7. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]
DEBUG  : Deleted site34, apiscp-int-ljjwijjewaryemaq.test (0) Failed
>>> PAUSED
Failed to delete site34

Environment

ApisCP version:
revision: dc17cacc523c77f0ec582ddf21e3c292f0911e5c
timestamp: 1745540622
ver_maj: 3
ver_min: 2
ver_patch: 47
ver_pre: ‘’
dirty: false
debug: false

Operating System: 4.18.0-513.9.1.el8_9.x86_64

Additional relevant information (e.g., PHP version, database, etc.):

Additional Information

I have tried setting updates to edge major, upcp -sb, artisan migrate, restarting apiscp.

Thanks for the bug report. Run upcp to update to 3.2.47.1, which corrects this.

Fixed on one server, on the other, I’m still getting errors.

# upcp -sb

PLAY [localhost] ***************************************************************
included: /usr/local/apnscp/resources/playbooks/roles/common/update-config/tasks/setup-resolved.yml for localhost

... truncated ...


TASK [apnscp/assert-account-works : Create new domain] *************************
fatal: [localhost]: FAILED! => {"changed": false, "cmd": ["/usr/local/apnscp/bin/AddDomain", "-o", "json", "-c", "siteinfo,domain=apiscp-int-fmygkmftuixthxmltakzojsn.test", "-c", "siteinfo,admin_user=thffyktsncbu", "-c", "dns,enabled=0", "-c", "dns,provider=null", "-c", "mail,enabled=0", "-c", "mail,provider=null", "-c", "ssl,enabled=0", "-c", "apache,jail=1"], "delta": "0:00:01.732526", "end": "2025-06-15 21:23:24.387699", "failed_when_result": true, "msg": "non-zero return code", "rc": 255, "start": "2025-06-15 21:23:22.655173", "stderr": "", "stderr_lines": [], "stdout": "[{\"message\":\"no billing identifier specified for site, generated `apnscp-OEZQMSIW'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Billing\\\\Invoice::valid\",\"bt\":null},{\"message\":\"no mysql database prefix specified - suggesting `apis_'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Mysql\\\\Dbaseprefix::valid\",\"bt\":null},{\"message\":\"no bandwidth rollover date specified, using day of month, `15'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Bandwidth\\\\Rollover::valid\",\"bt\":null},{\"message\":\"No password specified - generating random password: `xxxxxxxxxxxxxxxxxxxxxxxxx'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Auth\\\\Tpasswd::valid\",\"bt\":null},{\"message\":\"allocated port range [40210,40219] for account\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Ssh\\\\PortIndex::valid\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"Exception raised on `Opcenter\\\\Service\\\\Validators\\\\Siteinfo\\\\Enabled': `fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test''\",\"severity\":16,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Common\\\\Enabled::update\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/group\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\Group::getgrnam\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\User::getpwnam\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\User::getpwnam\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\User::getpwnam\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/group\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\Group::getgrnam\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"SQLSTATE[53200]: Out of memory: 7 ERROR:  out of shared memory\\nHINT:  You might need to increase max_locks_per_transaction.\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"fatal(): failed to create account\",\"severity\":64,\"caller\":\"Opcenter\\\\Filesystem::populate\",\"bt\":null}]", "stdout_lines": ["[{\"message\":\"no billing identifier specified for site, generated `apnscp-OEZQMSIW'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Billing\\\\Invoice::valid\",\"bt\":null},{\"message\":\"no mysql database prefix specified - suggesting `apis_'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Mysql\\\\Dbaseprefix::valid\",\"bt\":null},{\"message\":\"no bandwidth rollover date specified, using day of month, `15'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Bandwidth\\\\Rollover::valid\",\"bt\":null},{\"message\":\"No password specified - generating random password: `xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Auth\\\\Tpasswd::valid\",\"bt\":null},{\"message\":\"allocated port range [40210,40219] for account\",\"severity\":4,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Ssh\\\\PortIndex::valid\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"Exception raised on `Opcenter\\\\Service\\\\Validators\\\\Siteinfo\\\\Enabled': `fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test''\",\"severity\":16,\"caller\":\"Opcenter\\\\Service\\\\Validators\\\\Common\\\\Enabled::update\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/group\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\Group::getgrnam\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\User::getpwnam\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\User::getpwnam\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\User::getpwnam\",\"bt\":null},{\"message\":\"unable to open \\/etc\\/group\",\"severity\":16,\"caller\":\"Opcenter\\\\Role\\\\Group::getgrnam\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"SQLSTATE[53200]: Out of memory: 7 ERROR:  out of shared memory\\nHINT:  You might need to increase max_locks_per_transaction.\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"apiscp-int-kxgvdlatixhwzmlm.test: cannot access \\/etc\\/passwd\",\"severity\":16,\"caller\":\"Auth_Info_User::initializeUser\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'\",\"severity\":16,\"caller\":\"Event\\\\Manager::fire\",\"bt\":null},{\"message\":\"fatal(): failed to create account\",\"severity\":64,\"caller\":\"Opcenter\\\\Filesystem::populate\",\"bt\":null}]"]}

PLAY RECAP *********************************************************************
localhost                  : ok=2509 changed=12   unreachable=0    failed=1    skipped=997  rescued=0    ignored=0
# DeleteDomain apiscp-int-fmygkmftuixthxmltakzojsn.test
ERROR  : Auth_Info_User::initializeUser(): apiscp-int-kxgvdlatixhwzmlm.test: cannot access /etc/passwd
         0. Error_Reporter::add_error("apiscp-int-kxgvdlatixhwzmlm.test: cannot access /etc/passwd", )
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("apiscp-int-kxgvdlatixhwzmlm.test: cannot access /etc/passwd")
            [/usr/local/apnscp/lib/Auth/Info/User.php:186]
         2. Auth_Info_User::initializeUser("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test", null, "hs8Bq2G94LYohb92xa84c3kmi0RG3aFx")
            [/usr/local/apnscp/lib/Auth.php:847]
         3. Auth->initializeUser("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test", null)
            [/usr/local/apnscp/lib/Auth/CLI.php:49]
         4. Auth_CLI->authenticate()
            [/usr/local/apnscp/lib/CLI/cmd.php:636]
         5. CLI\cmd("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/bin/DeleteDomain:91]
Unauthorized
ERROR  : unknown(): failed to remove site `site14': fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'
         0. Error_Reporter::trigger_fatal("failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'", ["lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test"])
            [/usr/local/apnscp/lib/log_wrapper.php:50]
         1. fatal("failed to generate user session `%s'@`%s'", "lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/lib/Auth.php:518]
         2. Auth::context("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:208]
         3. Opcenter\Account\Delete->processHooks()
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:242]
         4. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]
[root@svr02 apnscp]# DeleteDomain apiscp-int-fmygkmftuixthxmltakzojsn.test --force
ERROR  : Opcenter\CliParser::getSiteFromArgs(): unknown site/domain/identifier `--force'
         0. Error_Reporter::add_error("unknown site/domain/identifier `%s'", ["--force"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("unknown site/domain/identifier `%s'", "--force")
            [/usr/local/apnscp/lib/Opcenter/CliParser.php:548]
         2. Opcenter\CliParser::getSiteFromArgs("apiscp-int-fmygkmftuixthxmltakzojsn.test", "--force")
            [/usr/local/apnscp/bin/DeleteDomain:40]
ERROR  : Auth_Info_User::initializeUser(): apiscp-int-kxgvdlatixhwzmlm.test: cannot access /etc/passwd
         0. Error_Reporter::add_error("apiscp-int-kxgvdlatixhwzmlm.test: cannot access /etc/passwd", )
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("apiscp-int-kxgvdlatixhwzmlm.test: cannot access /etc/passwd")
            [/usr/local/apnscp/lib/Auth/Info/User.php:186]
         2. Auth_Info_User::initializeUser("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test", null, "LD5wt2LW7y2MJ4n00YRtRZym6wD7PhdD")
            [/usr/local/apnscp/lib/Auth.php:847]
         3. Auth->initializeUser("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test", null)
            [/usr/local/apnscp/lib/Auth/CLI.php:49]
         4. Auth_CLI->authenticate()
            [/usr/local/apnscp/lib/CLI/cmd.php:636]
         5. CLI\cmd("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/bin/DeleteDomain:91]
Unauthorized
ERROR  : unknown(): failed to remove site `site14': fatal(): failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'
         0. Error_Reporter::trigger_fatal("failed to generate user session `lejzreppqpcobnjn'@`apiscp-int-kxgvdlatixhwzmlm.test'", ["lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test"])
            [/usr/local/apnscp/lib/log_wrapper.php:50]
         1. fatal("failed to generate user session `%s'@`%s'", "lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/lib/Auth.php:518]
         2. Auth::context("lejzreppqpcobnjn", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:208]
         3. Opcenter\Account\Delete->processHooks()
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:242]
         4. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]

Run mapCheck.php to rebuild indexes, then delete again:

/usr/local/apnscp/bin/scripts/mapCheck.php rebuild
DeleteDomain --force apiscp-int-kxgvdlatixhwzmlm.test
# /usr/local/apnscp/bin/scripts/mapCheck.php rebuild
INFO   : Scanning apache.domainmap
WARNING: unknown(): site16 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site16", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site16", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site29 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site29", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site29", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site30 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site30", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site30", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site31 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site31", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site31", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site32 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site32", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site32", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site33 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site33", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site33", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site34 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site34", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site34", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site35 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned si                                                                      te?", ["site35", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site35", "apache                                                                      ")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
INFO   : Scanning billing.domainmap
INFO   : Scanning billing.parentmap
INFO   : Scanning domainmap
INFO   : Invalid site reference site14 in domainmap - tracking
INFO   : Found dangling site site14 in domainmap - removing
INFO   : Invalid site reference site14 in domainmap - tracking
INFO   : Found dangling site site14 in domainmap - removing
INFO   : Scanning ipmap
INFO   : Scanning mysql.prefixmap
INFO   : Scanning mysql.usermap
INFO   : Scanning pgsql.prefixmap
INFO   : Scanning pgsql.usermap
INFO   : Scanning ssh.portmap
INFO   : Scanning reseller
INFO   : Scanning whitelist
INFO   : Rebuilt domainmap.tch
(Error) EXCEPTION: Call to protected Opcenter\Filesystem::__construc                                                                      t() from global scope
[/usr/local/apnscp/bin/scripts/mapCheck.php:465]
         0. {closure}("site14")
            [n/a]
         1. array_filter([site14:"apiscp-int-kxgvdlatixhwzmlm.test"]                                                                      , )
            [/usr/local/apnscp/bin/scripts/mapCheck.php:471]
# DeleteDomain --force apiscp-int-kxgvdlatixhwzmlm.test
ERROR  : Opcenter\CliParser::getSiteFromArgs(): unknown site/domain/identifier `apiscp-int-kxgvdlatixhwzmlm.test'
         0. Error_Reporter::add_error("unknown site/domain/identifier `%s'", ["apiscp-int-kxgvdlatixhwzmlm.test"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("unknown site/domain/identifier `%s'", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/lib/Opcenter/CliParser.php:548]
         2. Opcenter\CliParser::getSiteFromArgs("apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/bin/DeleteDomain:40]
ERROR  : unknown(): No sites specified
         0. Error_Reporter::add_error("No sites specified", )
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("No sites specified")
            [/usr/local/apnscp/bin/DeleteDomain:59]

Is there a way for me to manually remove the offending accounts without leaving a mess behind?

Run upcp, then try again - sorted?

ran upcp & upcp -sb via edge

# /usr/local/apnscp/bin/scripts/mapCheck.php rebuild
INFO   : Scanning apache.domainmap
WARNING: unknown(): site16 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned site?", ["site16", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site16", "apache")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site30 NOT IN apache.domainmap map
         0. Error_Reporter::add_warning("%(site)s NOT IN %(map)s map", [[site:"site30", map:"apache.domainmap"]])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%(site)s NOT IN %(map)s map", [site:"site30", map:"apache.domainmap"])
            [/usr/local/apnscp/bin/scripts/mapCheck.php:271]
INFO   : ADD www.apiscp-int-vokxevjisxvpxgmr.test=site30 (apache.domainmap - webserver)
WARNING: unknown(): site31 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned site?", ["site31", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site31", "apache")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site32 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned site?", ["site32", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site32", "apache")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site33 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned site?", ["site33", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site33", "apache")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site34 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned site?", ["site34", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site34", "apache")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
WARNING: unknown(): site35 MISSING apache - orphaned site?
         0. Error_Reporter::add_warning("%s MISSING %s - orphaned site?", ["site35", "apache"])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%s MISSING %s - orphaned site?", "site35", "apache")
            [/usr/local/apnscp/bin/scripts/mapCheck.php:200]
INFO   : Scanning billing.domainmap
INFO   : Scanning billing.parentmap
INFO   : Scanning domainmap
INFO   : Scanning ipmap
INFO   : Scanning mysql.prefixmap
INFO   : Scanning mysql.usermap
WARNING: unknown(): site30 NOT IN mysql.usermap map
         0. Error_Reporter::add_warning("%(site)s NOT IN %(map)s map", [[site:"site30", map:"mysql.usermap"]])
            [/usr/local/apnscp/lib/log_wrapper.php:95]
         1. warn("%(site)s NOT IN %(map)s map", [site:"site30", map:"mysql.usermap"])
            [/usr/local/apnscp/bin/scripts/mapCheck.php:271]
INFO   : ADD fttkxognjbkyyqxs=site30 (mysql.usermap - dbaseadmin)
INFO   : Scanning pgsql.prefixmap
INFO   : Scanning pgsql.usermap
INFO   : Scanning ssh.portmap
INFO   : Scanning reseller
INFO   : Scanning whitelist
INFO   : Rebuilt domainmap.tch
(Error) EXCEPTION: Call to protected Opcenter\Filesystem::__construct() from global scope
[/usr/local/apnscp/bin/scripts/mapCheck.php:465]
         0. {closure}("site14")
            [n/a]
         1. array_filter([site14:"apiscp-int-kxgvdlatixhwzmlm.test"], )
            [/usr/local/apnscp/bin/scripts/mapCheck.php:471]

# DeleteDomain apiscp-int-kxgvdlatixhwzmlm.test --force
ERROR  : Opcenter\CliParser::getSiteFromArgs(): unknown site/domain/identifier `apiscp-int-kxgvdlatixhwzmlm.test'
         0. Error_Reporter::add_error("unknown site/domain/identifier `%s'", ["apiscp-int-kxgvdlatixhwzmlm.test"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("unknown site/domain/identifier `%s'", "apiscp-int-kxgvdlatixhwzmlm.test")
            [/usr/local/apnscp/lib/Opcenter/CliParser.php:548]
         2. Opcenter\CliParser::getSiteFromArgs("apiscp-int-kxgvdlatixhwzmlm.test", "--force")
            [/usr/local/apnscp/bin/DeleteDomain:40]
ERROR  : Opcenter\CliParser::getSiteFromArgs(): unknown site/domain/identifier `--force'
         0. Error_Reporter::add_error("unknown site/domain/identifier `%s'", ["--force"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("unknown site/domain/identifier `%s'", "--force")
            [/usr/local/apnscp/lib/Opcenter/CliParser.php:548]
         2. Opcenter\CliParser::getSiteFromArgs("apiscp-int-kxgvdlatixhwzmlm.test", "--force")
            [/usr/local/apnscp/bin/DeleteDomain:40]
ERROR  : unknown(): No sites specified
         0. Error_Reporter::add_error("No sites specified", )
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("No sites specified")
            [/usr/local/apnscp/bin/DeleteDomain:59]


# DeleteDomain apiscp-int-fbqwzgxvmitvmlpr.test --force
ERROR  : Opcenter\CliParser::getSiteFromArgs(): unknown site/domain/identifier `--force'
         0. Error_Reporter::add_error("unknown site/domain/identifier `%s'", ["--force"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("unknown site/domain/identifier `%s'", "--force")
            [/usr/local/apnscp/lib/Opcenter/CliParser.php:548]
         2. Opcenter\CliParser::getSiteFromArgs("apiscp-int-fbqwzgxvmitvmlpr.test", "--force")
            [/usr/local/apnscp/bin/DeleteDomain:40]
ERROR  : Auth_Module::_getAPIQueryFragment(): cannot get billing invoice for API key
         0. Error_Reporter::add_error("cannot get billing invoice for API key", )
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("cannot get billing invoice for API key")
            [/usr/local/apnscp/lib/modules/auth.php:428]
         2. Auth_Module->_getAPIQueryFragment()
            [/usr/local/apnscp/lib/modules/auth.php:1170]
         3. Auth_Module->_get_api_keys_real("gcusodimdrncabzs")
            [/usr/local/apnscp/lib/modules/auth.php:1359]
         4. Auth_Module->get_api_keys()
            [/usr/local/apnscp/lib/modules/auth.php:1334]
         5. Auth_Module->_delete()
            [/usr/local/apnscp/lib/Util/Account/Hooks.php:140]
         6. Util_Account_Hooks->_process("delete", )
            [/usr/local/apnscp/lib/Util/Account/Hooks.php:50]
         7. Util_Account_Hooks->run("delete")
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:208]
         8. Opcenter\Account\Delete->processHooks()
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:242]
         9. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]
WARNING: Opcenter\Provisioning\Pam::disable(): pam service `ssh' not enabled
WARNING: Opcenter\Provisioning\Pam::disable(): pam service `ftp' not enabled
ERROR  : Opcenter\Filesystem\Quota\Project::remove(): Specified path not found in projects
         0. Error_Reporter::add_error(":err_quota_project_missing", ["Specified path not found in projects"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error(":err_quota_project_missing")
            [/usr/local/apnscp/lib/Opcenter/Filesystem/Quota/Project.php:328]
         2. Opcenter\Filesystem\Quota\Project->remove("/home/virtual/site16/shadow", false)
            [/usr/local/apnscp/lib/Opcenter/Service/Validators/Diskquota/Group.php:90]
         3. Opcenter\Service\Validators\Diskquota\Group->reconfigure("DEFAULT", null, Opcenter\SiteConfiguration)
            [/usr/local/apnscp/lib/Opcenter/Service/Validators/Diskquota/Group.php:100]
         4. Opcenter\Service\Validators\Diskquota\Group->depopulate(Opcenter\SiteConfiguration)
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:287]
         5. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]
ERROR  : Opcenter\Account\Delete::exec(): failed to depopulate service `diskquota' on svc var `group'
         0. Error_Reporter::add_error("failed to depopulate service `%s' on svc var `%s'", ["diskquota", "group"])
            [/usr/local/apnscp/lib/log_wrapper.php:72]
         1. error("failed to depopulate service `%s' on svc var `%s'", "diskquota", "group")
            [/usr/local/apnscp/lib/Opcenter/Account/Delete.php:288]
         2. Opcenter\Account\Delete->exec()
            [/usr/local/apnscp/bin/DeleteDomain:97]

Double-check upcp completed.

Line 471 is part of the anonymous class now, not the closing line of array_filter. Based upon your traceback, it’s running code prior to 8ab5b5d9.

cpcmd misc:cp-version

For some reason, I’m now getting errors with the update.

# cpcmd misc:cp-version
revision: 55c0f3b6a34de9be17a7ad3fb1f118f36867976b
timestamp: 1749681967
ver_maj: 3
ver_min: 2
ver_patch: 47
ver_pre: ''
dirty: false
debug: false

# upcp
No branch marked for merge

# upcp -sb

PLAY [localhost] ***************************************************************
included: /usr/local/apnscp/resources/playbooks/roles/common/update-config/tasks/setup-resolved.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/common/tasks/write-config.yml for localhost
---
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/setup-channel.yml for localhost
included: /usr/local/apnscp/resources/playbooks/roles/packages/install/tasks/setup-channel.yml for localhost

TASK [pgsql/install : Install psycopg module] *******************************************************************************************************************************************************************************************
fatal: [localhost]: FAILED! => {"changed": false, "failures": [], "msg": "Unknown Error occured: Could not run transaction.", "rc": 1, "results": []}

PLAY RECAP ******************************************************************************************************************************************************************************************************************************
localhost                  : ok=151  changed=0    unreachable=0    failed=1    skipped=92   rescued=0    ignored=0


# cpcmd misc:cp-version
revision: 55c0f3b6a34de9be17a7ad3fb1f118f36867976b
timestamp: 1749681967
ver_maj: 3
ver_min: 2
ver_patch: 47
ver_pre: ''
dirty: false
debug: false

Run these commands and let me know the output.

cd /usr/local/apnscp
git merge-base --fork-point HEAD
git switch -
upcp

Should be OK afterward.

As for your dnf problem, I’m not sure. I’d need to see the Ansible output.

ansible -vvv -m dnf -a name='python3-psycopg < 2.9.9' -a state=present localhost

This all worked and then allowed me to delete domains after doing the mapcheck again.

Also didn’t have any more issues with DNF so (shrug). Thanks for the assist.

1 Like