Articles in this section

Cannot change hosting type for a Plesk domain: Unable to load object of type SysUser with id

Plesk for Windows Plesk for Linux kb: technical

Applicable to:

  • Plesk for Linux
  • Plesk for Windows

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:

    PLESK_ERROR: 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 is also missing:

    # ls -al /var/www/vhosts/example.com/
    ls: cannot access /var/www/vhosts/example.com/: No such file or directory

  • The following error may appear in Plesk:

    PLESK_ERROR: 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
  1. Connect to the server via SSH/RDP.
  2. Backup Plesk database.
  3. Run Plesk repair utility (for Windows, run Command Prompt first):

    # plesk repair db

    Confirm fix for all errors that begin with:

    CONFIG_TEXT: Inconsistency in the table 'web_users'
    Inconsistency in the table 'smb_users'

  4. Create the domain or set the necessary hosting type for the domain in the Plesk interface.
Manual solution
  1. Connect to the server via SSH/RDP.
  2. Backup Plesk database.
  3. Enter Plesk database (for Windows, run Command Prompt first):

    # plesk db

  4. Ensure that there is no system user with the ID specified in the error message in the Plesk database:

    MYSQL_LIN: mysql> select * from sys_users where id=1;
    Empty set (0.00 sec)

  5. Find domain ID and make sure that hosting type for the domain is set to none :

    MYSQL_LIN: 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)

  6. Find the inconsistent record in the hosting table:

    MYSQL_LIN: 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)

  7. Remove the inconsistent record using dom_id from previous step:

    MYSQL_LIN: mysql> delete from hosting where dom_id=2;

  8. Create the domain or set the necessary hosting type for the domain in the Plesk interface.
Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.