Applicable to:
- Plesk for Linux
Symptoms
-
Unable to change PHP Settings (e.g. memory_limit ) in Domains > example.com > PHP Settings. The following error appears in Plesk UI:
PLESK_ERROR: Internal error.
ERROR: Call to a member function updateUser() on null (Abstract.php:1020) -
The following error appears when trying to restore a domain:
PLESK_ERROR: Warning: Restore domain "example.com"
Internal server error: <script></script><p>ERROR: Call to a member function updateUser() on null (Abstract.php:939)<br><br><a href='http://kb.plesk.com/plesk-error/search?metaId=0b20aabbd825d0a69fd31706678e2963&messageId=8683930b08bc80638d3a40c07c086b46&file=Abstract.php&line=939&type=Error&version=17.5.3&message=Call+to+a+member+function+updateUser%28%29+on+null' target='_blank'>Search for related Knowledge Base articles</a></p>
Cause
Database inconsistency. There are no corresponding records in the table
psa.ServiceInstances
for the separate domain
example.com
or for all domains.
Resolution
Click on a section to expand
- Connect to the server via SSH
-
Create a backup of
psa
database:# plesk db dump psa > /root/psa_dump.sql
-
Find records in the table
psa.ServiceInstallations
:# plesk db -e "SELECT * FROM ServiceInstallations"
+----+-----------------+--------+---------------+
| id | name | status | serviceNodeId |
+----+-----------------+--------+---------------+
| 1 | PleskDns | 1 | 1 |
| 2 | PleskFileSystem | 1 | 1 |
+----+-----------------+--------+---------------+ -
Find id
of the domainexample.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. -
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 domainexample.com
withid
of the actual domain name from the step 2. -
Сreate corresponding records in the table
psa.ServiceInstances
manually for each record from the tablepsa.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
isid
of the service from the tablepsa.ServiceInstallations
from the step 1.servicePackageId
isid
of the domainexample.com
from the step 2.reference
isuuid
generated by execution of the commanduuidgen
.
- Connect to the server via SSH
-
Create a backup of
psa
database:# plesk db dump psa > /root/psa_dump.sql
- Run the following commands:
# 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
Comments
0 comments
Please sign in to leave a comment.