The error "Call to a member function updateUser() on null" appears in an attempt to change the value of performance settings

Created:

2017-05-12 11:55:09 UTC

Modified:

2017-08-16 15:43:52 UTC

0

Was this article helpful?


Have more questions?

Submit a request

The error "Call to a member function updateUser() on null" appears in an attempt to change the value of performance settings

Applicable to:

  • Plesk for Linux

Symptoms

Unable to change Performance settings (e.g. memory_limit ) in Plesk > Domains > example.com > PHP Settings . The following error appears:

PLESK_ERROR: Internal error.
ERROR: Call to a member function updateUser() on null (Abstract.php:1020)

Cause

Database inconsistency.

No corresponding records in the table psa.ServiceInstances for the separate domain example.com or for all domains.

Resolution

Connect to the server using SSH.

If the issue persists only for one domain example.com follow these steps:

  1. Create a backup of psa database:

    # plesk db dump > psa_dump.sql

  2. Check records in the table psa.ServiceInstallations :

    # plesk db "SELECT * FROM ServiceInstallations"
    +----+-----------------+--------+---------------+
    | id | name            | status | serviceNodeId |
    +----+-----------------+--------+---------------+
    |  1 | PleskDns        |    1   |        1      |
    |  2 | PleskFileSystem |    1   |        1      |
    +----+-----------------+--------+---------------+

  3. Check id of the domain example.com .

    # plesk db "SELECT s.id, d.name FROM Subscriptions AS s LEFT JOIN domains AS d ON s.object_id=d.id WHERE d.name='example.com'"
    +----+-----------------+
    | id |       name      |
    +----+-----------------+
    | 14 |   example.com   |
    +----+-----------------+

    Note : replace the domain example.com with an actual domain name from the previous step.

  4. Make sure that there are no records related to the domain example.com (if corresponding records are contained, contact Plesk technical support)

    # plesk db "SELECT * FROM ServiceInstances WHERE servicePackageId='14';"

    Note : replace id of the domain example.com with id of the actual domain name from the step 2.

  5. Сreate corresponding records in the table psa.ServiceInstances manually for each record from the table psa.ServiceInstallations :

    # plesk db "INSERT INTO ServiceInstances (serviceInstallationId, servicePackageId, reference, status, enabled) values (1, 14, UUID(), 1, 1)"
    # plesk db "INSERT INTO ServiceInstances (serviceInstallationId, servicePackageId, reference, status, enabled) values (2, 14, UUID(), 1, 1)"

    where:

    serviceInstallationId is id of the service from the table psa.ServiceInstallations from the step 1.

    servicePackageId is id of the domain example.com from the step 2.

    reference is uuid generated by execution of the command uuidgen .

If the issue persists for all domains execute following commands, do the following:

# plesk db dump > /psa_dump.sql
# MYSQL_PWD=`cat /etc/psa/.psa.shadow` mysql -u admin psa -N -e "select id from domains;" > list.txt
# while read line; do
> I=$line;
> A=`uuidgen`;
> plesk db "INSERT INTO ServiceInstances (serviceInstallationId, servicePackageId, reference, status, enabled) values (1, $I, '$A', 1, 1)";
> A=`uuidgen`;
> plesk db "INSERT INTO ServiceInstances (serviceInstallationId, servicePackageId, reference, status, enabled) values (2, $I, '$A', 1, 1)";
> done < list.txt

Have more questions? Submit a request
Please sign in to leave a comment.