Magento 2: Error during compilation mostly occur when we run the compile command, setup:di:compile
via SSH.
As part of our Server Management Services, we assist our customers with several Magento queries.
Today, let us see how to fix the error during compilation.
Magento 2: Error during compilation
Recently, we had a customer who upgraded to the latest version of Magento 2 i.e. 2.2.3.
However, while he runs the compile command (setup:di:compile) via SSH he comes across the error -:
Errors during compilation: Magento\Backend\Model\View\Layout\GeneratorPool Incompatible argument type: Required type: \Magento\Framework\View\Layout\Condition\ConditionFactory. Actual type: \Magento\Framework\App\Config\ScopeConfigInterface; File: /home/scommerc/public_html/magento2/vendor/magento/module-backend/Model/View/Layout/GeneratorPool.php Total Errors Count: 1 [Magento\Framework\Validator\Exception] Error during compilation
While checking we could see that there was a file that we need to remove after the upgrade. This is necessary especially when we upgrade from the old version to the new version (i.e. 2.2.3) because this file doesn’t exist in the latest version.
vendor/magento/module-backend/Model/View/Layout/GeneratorPool.php
Instead of copying the files directly on the server, the best way to upgrade to the latest version of Magento 2 is to run:
composer require <product> <version> --no-update
composer update
For the Magento community:
composer require magento/product-community-edition 2.2.3 --no-update
composer update
For Magento enterprise:
composer require magento/product-enterprise-edition 2.2.3 --no-update
composer update
Alternate solution
On the other hand, we came across a support request stating that they were receiving the following error while compilation:
[InvalidArgumentException] Plugin class Vendor\Module\Plugin\WysiwygConfig doesn’t exist
In this case, we run the below command and set up the upgrade:
php bin/magento setup:upgrade
Then we alter the command to:
php bin/Magento setup:di:compile
Eventually, we cache clean and cache flush.
By doing this, we can know where the error is triggered.
Then, to find the custom/third-party module we need to check the app/code directory.
In the directory, we need to find the line of code: in your app/code directory and post here which file contains this code.
class Vendor\Module\Plugin\WysiwygConfig
Here, since we can confirm it is from the module app/code/Talv/WysiwygFix, we disable it.
To disable the module, we run the below command:
php bin/magento module:disable Talv_WysiwygFix
Another method to disable this module from app/etc/config.php is by changing this module value from 1 to 0.
Then we run the below commands:
php bin/magento setup:di:compile
php bin/magento cache:clean
php bin/magento cache:flush
[Couldn’t fix the error? Feel free to contact us]
Conclusion
In short, we saw how our Support Techs fix the Magento error.
0 Comments