×


Magento 2: Error during compilation after upgrading to version 2.2.3

Magento 2: Error during compilation mostly occur when we run the compile command, setup:di:compile via SSH.

Here at Ibmi Media, as part of our Server Management Services, we regularly help our Customers to perform related Magento queries.

In this context, we shall look into methods to fix this Magento error.


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 to this Magento error

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 this Magento error? Feel free to contact us. ]


Conclusion

This article covers methods to fix Magento error which happens during compilation on upgrading to version 2.2.3. 

If you upgrade Magento older version to Magento 2.2.3 and you fetching same error in compile then below step you should follow to resolve this error.

Magento older version have 2 directories and 2 files in this path:

vendor\magento\module-backend\Model\View\Layout
  • Filter
  • Reader
  • Builder.php
  • GeneratorPool.php

And Magento version 2.2.3 have 1 directory and 2 files:

  • Reader
  • Builder.php file
  • StructureManager.php

So after merge files and folder, you should delete "filter" folder and "GeneratorPool.php" from Magento version 2.2.3 on this path:

vendor/magento/module-backend/Model/View/Layout/GeneratorPool.php

Then run the compile command