- Plesk for Linux
- Plesk for Windows
- DNS Service is not installed on the server or disabled
Unable to add or delete a public IP address at Tools & Settings > IP Addresses:
PLESK_ERROR: IP Address updating finished with errors
Task execution failed:
ERR [panel] Argument 1 passed to Dns_Manager_Common::updateDomainDNS() must be an instance of Dns_Zone
On Linux, the following error message in the logfile /var/log/plesk/panel.log:
CONFIG_TEXT: ERR [panel] Argument 1 passed to Dns_Manager_Common::updateDomainDNS() must be an instance of Dns_Zone, null given, called in /usr/local/psa/admin/plib/Ip/Task/UpdateReal.php on line 36:
Dns_Manager_Common::updateDomainDNS(NULL null, string '203.0.113.2', string '192.0.2.2')
Db_Table_Broker_LongTasks->_syncStart(object of type Db_Table_Row_LongTask)
Db_Table_Broker_LongTasks->_startQueue(object of type Db_Table_Row_LongTask, boolean true)
Db_Table_Broker_LongTasks->start(object of type Db_Table_Row_LongTask, string 'synchronously')
On Windows, the following error message appear in the logfile %plesk_dir%admin\logs\php_error.log (just paste this path in Windows Explorer to open):
CONFIG_TEXT: PHP Catchable Fatal Error: Argument 1 passed to Dns_Manager_Common::updateDomainDNS() must be an instance of Dns_Zone, null given, called in C:\Program Files (x86)\Plesk\admin\plib\Ip\Task\UpdateReal.php on line 36 and defined; File: C:\Program Files (x86)\Plesk\admin\plib\Dns\Manager\Common.php, Line: 1283
Bug with ID #PPPM-9716. It is already fixed in Plesk Obsidian 18.0.
As a workaround, apply one of the following solutions:
Install a DNS Server at Tools & Settings > Updates and Upgrades > Add/Remove Components > BIND DNS Server.
Enable Microsoft DNS Server at Tools & Setting > Server Components > DNS Server.
Change existing address for the new one where 'new_public_ip' is the new public IP to add:
Backup Plesk database as per How to backup/restore a Plesk database dump
Log in to Plesk database
Change Public IP in IP_Addresses table:
# plesk db "update IP_Addresses set public_ip_address='new_public_ip' WHERE public_ip_address='192.0.2.2'"
Note: If it is required to delete the public IP address, set value of it to empty value, i.e. ''
Change addresses in dns_recs table. Skip this step if the server is a brand new and/or DNS server has never been installed in Plesk:
# plesk db "update dns_recs set val='new_public_ip', displayVal='new_public_ip' WHERE val='192.0.2.2'"