Symptoms
-
The following error is shown when clicking on [change login settings] button in WordPress instance settings in Domains > example.com > WordPress instance name:
external error:
Unable to find row with id in smb_apsMetas table. -
The following messages can be found in
/var/log/plesk/panel.log
with enabled SQL query debug log:[2018-05-19 00:25:22] DEBUG [dbquery] [72] SQL: SELECT `smb_apsInstances`.* FROM `smb_apsInstances` WHERE (((`smb_apsInstances`.`id` = 29)))
[2018-05-19 00:25:22] DEBUG [dbquery] [72] END: 0.00771 sec
[2018-05-19 00:25:22] ERR [panel] Unable to find row with id in smb_apsMetas table.:
Cause
Plesk database inconsistency.
Resolution
-
Connect to the server via SSH
-
Back up the
psa
database:# plesk db dump psa > backup.sql
-
Access MySQL:
# plesk db
-
Check the following entries based on the queries from the SQL debug logs in
/var/log/plesk/panel.log
:SELECT * FROM smb_apsInstances WHERE id=29;
+----+-----------------+-----------+--------+---------------------------+---------------------------+
| id | parentContextId | contextId | metaId | uuid | registryResourceId |
+----+-----------------+-----------+--------+---------------------------+---------------------------+
| 29 | 36 | 41 | 12 | a3133579-...-1ef4c1dfbdb3 | 8e786998-...-03ae740b6c54 |
+----+-----------------+-----------+--------+---------------------------+---------------------------+
1 row in set (0.00 sec)SELECT * FROM smb_apsMetas WHERE id=12;
+----+-----------+-----------+----------------------------------------------+-------+-----------+
| id | name | serviceId | xpath | class | contextId |
+----+-----------+-----------+----------------------------------------------+-------+-----------+
| 12 | WordPress | wordpress | aps::aps12::http://wordpress.org/::wordpress | | 36 |
+----+-----------+-----------+----------------------------------------------+-------+-----------+
1 row in set (0.00 sec)SELECT * FROM smb_apsContexts WHERE id=36;
+----+-------------+-----------+-------------------------+----------------------+
| id | contextType | packageId | requirementContextClass | requirementContextId |
+----+-------------+-----------+-------------------------+----------------------+
| 36 | 0 | 12 | NULL | NULL |
+----+-------------+-----------+-------------------------+----------------------+
1 row in set (0.00 sec) -
If some of these entires are missing, restore them via manual inserts based on the same entries in the last valid
psa
database dump in/var/lib/psa/dumps/
. For example:INSERT INTO smb_apsInstances VALUES (29,36,41,12,'a3133579-XXXX-XXXX-XXXX-1ef4c1dfbdb3','8e786998-XXXX-XXXX-XXXX-03ae740b6c54');
Query OK, 1 row affected (0.01 sec)INSERT INTO smb_apsMetas VALUES (12,'WordPress','wordpress','aps::aps12::http://wordpress.org/::wordpress','',36);
Query OK, 1 row affected (0.01 sec)INSERT INTO smb_apsContexts VALUES (36,0,12,NULL,NULL);
Query OK, 1 row affected (0.01 sec)
Additional information:
If the issue still persists:
1. Back up the WPTK SQLite database:
# cp /usr/local/psa/var/modules/wp-toolkit/wp-toolkit.sqlite3{,.backup}
2. Fix extra records from WP Toolkit database as follows:
# sqlite3 /usr/local/psa/var/modules/wp-toolkit/wp-toolkit.sqlite3
SQLite version 3.7.17 2013-05-20 00:56:22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .mode column
sqlite> .headers ON
sqlite> select * from Instances where apsInstanceId=29;
id domainId path isIgnored apsInstanceId
---------- ---------- ---------- ---------- -------------
1 4 /httpdocs 0
sqlite> update Instances set apsInstanceId=NULL where id=1;
3. After that, go to Tools & Settings > WordPress and run 'Check for Updates' task.