Plesk

Cannot update WordPress instance settings: Unable to find row with id in smb_apsMetas table

Symptoms

Cause

Plesk database inconsistency.

Resolution

  1. Connect to the server via SSH

  2. Back up the psa database:

    # plesk db dump psa > backup.sql

  3. Access MySQL:

    # plesk db

  4. 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)

  5. 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.