• Introducing WebPros Cloud - a fully managed infrastructure platform purpose-built to simplify the deployment of WebPros products !  WebPros Cloud enables you to easily deliver WebPros solutions — without the complexity of managing the infrastructure.
    Join the pilot program today!
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.

Issue Error opening Extensions

nightshift88

New Pleskian
Server operating system version
Ubuntu 24.04.2 LTS
Plesk version and microupdate number
Plesk Obsidian 18.0.69
Since upgrade to Plesk Obsidian 18.0.69 (Linux) i am unable to open the Extensions Page.

ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

Domain.com/modules/catalog/index.php/catalog/featured is the link called
 
Disable all extensions. Connect via ssh and use the list option to see the extension names:
plesk bin extension --list
then use the disable option:
plesk bin extension --disable name-of-the-extension

Now enter your plesk via web and upgrade all your extensions and then you can enable them. After this the plesk interface could be go well.
 
If you have issue again try to disable via web interface and then reactivate one by one looking if the error appears. In this way you can find the extensions that cause the issue.
 
Same here.
Everything under /modules/ directory (extensions) return this error:
ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

Repair -all not find any error.
 
Since upgrade to Plesk Obsidian 18.0.69 (Linux) i am unable to open the Extensions Page.

ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

Domain.com/modules/catalog/index.php/catalog/featured is the link called
Same here. Did you manage to find a solution?
 
I was following this thread. In my VPS, I have some and other errors;
* Click Extensions :
ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)
* Click Process List :
ERROR: Declaration of DI\CompiledContainer::get($name) must be compatible with DI\Container::get(string $id): mixed (CompiledContainer.php:41)
* Click Mail Queue (New) :
ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)
* Click Action Log :
ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

And more and more. It all started after update to "Plesk Obsidian 18.0.69 Update #2".

Please reply the solutions from here, I'd be appreciated.
 
same here after update to "Plesk Obsidian 18.0.69 Update #2":

ERROR: Declaration of DI\CompiledContainer::get($name) must be compatible with DI\Container::get(string $id): mixed (CompiledContainer.php:41)
 
ERROR: Declaration of DI\CompiledContainer::get($name) must be compatible with DI\Container::get(string $id): mixed (CompiledContainer.php:41)

Solved! After removing several extensions via client (Grafana for example) probably no longer supported or not updated, via client and not from panel because it gave me the reported error, I was able to access my extensions again.
I updated all the extensions and with Web Server Configuration Troubleshooter I found a permissions problem on Plesk installation/update files that solved the same tool.
 
Hi,
I encountered a similar error when trying to access the page for any of my extensions : ERROR: Declaration of DI\CompiledContainer::get($name) must be compatible with DI\Container::get(string $id): mixed (CompiledContainer.php:41)

I solved it by disabling then updating the Node.js extension - Toolkit
Here are the commands I used as root:

plesk bin extension --list
plesk bin extension --disable nodejs

* extenions page test: OK

plesk bin extension -g nodejs
plesk bin extension --enable nodejs

My other extensions, including Grafana mentioned above, do not cause this error.
 
My other extensions, including Grafana mentioned above, do not cause this error.
I've disable all those installed but not used, including nodejs. I mentioned Grafana because I found several threads with issues that have to do with this extension. So it was likely, as in your case, given the identical error message, nodejs was the cause.
 
I've disabled all the extensions via SSH;

advisor, composer, configurations-troubleshooter, diskspace-usage-viewer, firewall, git, google-drive-backup, heavy-metal-skin, letsencrypt, log-browser, monitoring, ntp-timesync, pagespeed-insights, panel-ini-editor, panel-migrator, plesk-mobile, plesk-sitejet, repair-kit, sectigo, site-import, ssh-terminal, sslit

Then made "plesk repair all -y", there is only one error;

Wrong AUTO_INCREMENT values in the following tables: log_actions:
3288926 ≠ 3288927, longtasks: 8481 ≠ 8483 ......................... [ERROR]
Updating AUTO_INCREMENT values .................................. [FIXED]

It says FIXED, but it didn't. I made "repair all" again, same error exists.

Then updated to "Plesk Obsidian 18.0.69 Update #3", error still exists. Then I enabled all extensions again, error still exists. When I click Extensions;

ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

Unfortunately no solution on my side.
 
Could everyone who experiences the issue enable Plesk debug mode, reproduce the issue and confirm what's the error they see?

With debug mode enabled, the extension causing the issue should be present in the error. Could you please give it a try and confirm if there are additional details in the error? If yes, please re-install the extension following the instructions from this guide.
 
I cleared "/var/log/plesk/panel.log" file, then clicked Extensions again in panel. In panel.log there was an error;

[08-May-2025 18:40:57 Europe/Istanbul] PHP Fatal error: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition in /usr/local/psa/admin/plib/modules/performance-booster/vendor/php-di/php-di/src/Definition/Source/DefinitionFile.php on line 36
[2025-05-08 18:40:57.377] 684066:681cd0894c6a4 ERR [panel] ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

It seems like the errors are coming from "performance-booster", I couldn't find how to disable this extension. So, I added;
[ext-performance-booster]
enabled=false
to "/usr/local/psa/admin/conf/panel.ini"
Then I saw that "Performance Booster" doesn't exist in "Tools & Settings", it's disappeared. But when I click Extensions, same error still exists;

ERROR: Declaration of DI\Definition\Source\DefinitionFile::getDefinition(string $name) must be compatible with DI\Definition\Source\DefinitionArray::getDefinition(string $name): ?DI\Definition\Definition (DefinitionFile.php:36)

It's getting bored.
 
Back
Top