Cobra Forum

Plesk Panel => Plesk Service/Interface => Topic started by: mahesh on Aug 16, 2024, 08:53 AM

Title: Plesk is not accessible: Unable to find service node for web service on domain
Post by: mahesh on Aug 16, 2024, 08:53 AM
Question:
Plesk is not accessible: Unable to find service node for web service on domain with id=xxx
Symptoms

Internal error: Unable to find service node for web service on domain with id=111

#plesk repair db -n
Inconsistency in the table 'domains' for the column id: No rows in the table 'DomainServices' with type = 'web', dom_id = 111 ........ [ERROR]
Cause
Inconsistency in the Plesk database.

Resolution
Note: Steps below are the same for both Linux and Windows. 

1.Connect to the Plesk server via SSH/RDP.

2.Create a dump of the Plesk database.

3.Connect to the Plesk database with the command (On Windows Server use a command prompt):

#plesk db
4.Find the domain's "ip_address_id" using dom_id value from the error message (for example  dom_id = 111):

mysql> select dom_id,param,val from dom_param where param='ip_addr_id' and dom_id=111;
+--------+------------+------+
| dom_id |   param    |  val |
+--------+------------+------+
|  111   | ip_addr_id |   1  |
+--------+------------+------+
5.Find the "id" with the type "mail" in DomainServices:

mysql> select * from DomainServices where dom_id=111;
+------+--------+------+--------+---------------+----------------+
| id   | dom_id | type | status | parameters_id | ipCollectionId |
+------+--------+------+--------+---------------+----------------+
| 25   | 111    | mail | 0      | 639           | 25             |
+------+--------+------+--------+---------------+----------------+

6.Find "id" of the IP address assigned to the domain:

mysql> select * from IpAddressesCollections where ipCollectionId=25;
+----------------+-------------+
| ipCollectionId | ipAddressId |
+----------------+-------------+
| 25             | 1           |
+----------------+-------------+

7.Find the next free value for the "id" field in the DomainServices table:
mysql> select max(id)+1 from DomainServices;
-------+
| max(id)+1 |
+----------
+-----+
| 1447      |
+-----------+

8.Create the missing records using id from step 7 (in this example id=1447) and ipCollectionId as 1 + the value from step 6 (in this example ipCollectionId=26 [25+1]):

mysql> insert into DomainServices (id, dom_id, type, status, parameters_id, ipCollectionId) values ('1447', '111', 'web', '0', '0', '26');
mysql> insert into IpAddressesCollections (ipCollectionId, ipAddressId) values ('26', '1');
mysql> insert into IpCollections (id) values ('26');