Symptoms
-
Unable to create a domain, change hosting type for a domain in Domains > example.com > Hosting Settings > Hosting type or to restore a domain from backup:
Error: Unable to load object of type SysUser with id=1: SysUser: unable to select: no such row in the table.
-
The system user from this domain does not exist. The following command shows no output:
# grep 'example.com' /etc/passwd
-
The document root for the domain does not exist as well:
# ls -al /var/www/vhosts/example.com/
ls: cannot access /var/www/vhosts/example.com/: No such file or directory -
The following error might be shown at Plesk:
New configuration files for the Apache web server were not created due to the errors in configuration templates: Template processing failed: file = /usr/local/psa/admin/conf/templates/default/domainForwarding.php, error = Template_Exception: No data. file: /usr/local/psa/admin/plib/Template/Processor.php line: 27 code: 0 Previous error: Template_Variable_Exception: No data. file: /usr/local/psa/admin/plib/Template/Variable/AbstractCachedData.php line: 65 code: 0.
Cause
Database inconsistency: The psa.hosting
table contains an orphaned record from dom_id
.
Resolution
Automated solution
-
Run Plesk repair utility (for Windows, run Command Prompt first):
# plesk repair db
Confirm fix for all errors that begin with:
Inconsistency in the table 'web_users'
Inconsistency in the table 'smb_users' -
Create the domain or set the necessary hosting type for the domain in the Plesk interface.
Manual solution
-
Enter Plesk database (for Windows, run Command Prompt first):
# plesk db
-
Make sure that there is no system user with ID from error message in Plesk database:
mysql> select * from sys_users where id=1;
Empty set (0.00 sec) -
Find domain ID and make sure that hosting type for the domain is set to
none
:mysql> select id, name, htype from domains where name like '%example.com%';
+----+-------------+-------+
| id | name | htype |
+----+-------------+-------+
| 76 | example.com | none |
+----+-------------+-------+
1 row in set (0.00 sec) -
Find the inconsistent record in the
hosting
table:mysql> select dom_id, sys_user_id, www_root from hosting where sys_user_id=1;
+--------+-------------+--------------------------------------+
| dom_id | sys_user_id | www_root |
+--------+-------------+--------------------------------------+
| 2 | 1 | /var/www/vhosts/example.com/httpdocs |
+--------+-------------+--------------------------------------+
1 row in set (0.00 sec) -
Remove the inconsistent record using dom_id from previous step:
mysql> delete from hosting where dom_id=2;
-
Create the domain or set the necessary hosting type for the domain in the Plesk interface.