Hello,
we have recently noticed that fastly/fastly-magento2 module silently added new dependency that breaks backward compatibility of the module: https://github.com/fastly/fastly-magento2/pull/785/changes#diff-a3cc35fae231bd148e38dd6394634a7f1ff1e0261bb6a94f90010aea3c031dc1R110
This line require magento/module-async-config to be installed, but it is only available since Magento 2.4.7 release, which makes Fastly module unusable on earlier releases.
Steps to Reproduce
- Have old Magento installation (I've tested on 2.4.5-p16)
- Install Fastly module with
composer require fastly/magento
- Notice that 1.2.240 version of the module is installe successfuly
- Go to Admin Store Configuration page
- Try to save config
See the following stack trace:
Error: Class "Magento\AsyncConfig\Setup\ConfigOptionsList" not found in /var/www/html/vendor/fastly/magento2/Model/Config/ConfigRewrite.php:110
Stack trace:
#0 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(146): Fastly\Cdn\Model\Config\ConfigRewrite->afterSave(Object(Magento\Config\Model\Config\Interceptor), Object(Magento\Config\Model\Config\Interceptor))
#1 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Config\Model\Config\Interceptor->Magento\Framework\Interception\{closure}()
#2 /var/www/html/generated/code/Magento/Config/Model/Config/Interceptor.php(23): Magento\Config\Model\Config\Interceptor->___callPlugins('save', Array, NULL)
#3 /var/www/html/vendor/magento/module-config/Controller/Adminhtml/System/Config/Save.php(226): Magento\Config\Model\Config\Interceptor->save()
#4 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Config\Controller\Adminhtml\System\Config\Save->execute()
#5 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->___callParent('execute', Array)
#6 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->Magento\Framework\Interception\{closure}()
#7 /var/www/html/generated/code/Magento/Config/Controller/Adminhtml/System/Config/Save/Interceptor.php(23): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->___callPlugins('execute', Array, Array)
#8 /var/www/html/vendor/magento/framework/App/Action/Action.php(111): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->execute()
#9 /var/www/html/vendor/magento/module-backend/App/AbstractAction.php(151): Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#10 /var/www/html/vendor/magento/module-config/Controller/Adminhtml/System/AbstractConfig.php(69): Magento\Backend\App\AbstractAction->dispatch(Object(Magento\Framework\App\Request\Http))
#11 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Config\Controller\Adminhtml\System\AbstractConfig->dispatch(Object(Magento\Framework\App\Request\Http))
#12 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->___callParent('dispatch', Array)
#13 /var/www/html/vendor/magento/module-backend/App/Action/Plugin/Authentication.php(145): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#14 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Backend\App\Action\Plugin\Authentication->aroundDispatch(Object(Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#15 /var/www/html/vendor/webkul/module-marketplace/src/app/code/Webkul/Marketplace/Plugin/App/Action/Context.php(56): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#16 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(135): Webkul\Marketplace\Plugin\App\Action\Context->aroundDispatch(Object(Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#17 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#18 /var/www/html/generated/code/Magento/Config/Controller/Adminhtml/System/Config/Save/Interceptor.php(32): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->___callPlugins('dispatch', Array, Array)
#19 /var/www/html/vendor/magento/framework/App/FrontController.php(245): Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#20 /var/www/html/vendor/magento/framework/App/FrontController.php(212): Magento\Framework\App\FrontController->getActionResponse(Object(Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor), Object(Magento\Framework\App\Request\Http))
#21 /var/www/html/vendor/magento/framework/App/FrontController.php(147): Magento\Framework\App\FrontController->processRequest(Object(Magento\Framework\App\Request\Http), Object(Magento\Config\Controller\Adminhtml\System\Config\Save\Interceptor))
#22 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#23 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#24 /var/www/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#25 /var/www/html/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#26 /var/www/html/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#27 /var/www/html/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#28 /var/www/html/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#29 /var/www/html/pub/index.php(30): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#30 {main}
Workaround
Downgrade Fastly module to 1.2.236 version
composer require fastly/magento2:1.2.236
Hello,
we have recently noticed that fastly/fastly-magento2 module silently added new dependency that breaks backward compatibility of the module: https://github.com/fastly/fastly-magento2/pull/785/changes#diff-a3cc35fae231bd148e38dd6394634a7f1ff1e0261bb6a94f90010aea3c031dc1R110
This line require magento/module-async-config to be installed, but it is only available since Magento 2.4.7 release, which makes Fastly module unusable on earlier releases.
Steps to Reproduce
composer require fastly/magentoSee the following stack trace:
Workaround
Downgrade Fastly module to 1.2.236 version