Open
Description
Preconditions and environment
Magento 2.4.8 w/ OpenSearch. - PHP8.3
Steps to reproduce
- Set up Magento with OpenSearch
- Disable Magento_Elasticsearch8 & Magento_Elasticsearch (in config.php) and run setup/di steps
- Try using front-end search
Expected result
I would expect a deprecated module not being a requirement for a core module. Therefor I'd expect to be able to be disabled/uninstalled and have search properly working. Else I'd expect the setup/di steps to be aware of this dependency requirement and fail.
Actual result
Search is broken (page crash) since AdvancedSearch, while using OpenSearch is ALSO using/requiring ElasticSearch.
Here is the trace showing ElasticSearch dependency:
Error: Cannot instantiate interface Magento\AdvancedSearch\Model\Client\ClientOptionsInterface in [PATH]/web/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:121
Stack trace:
#0 [PATH]/web/vendor/magento/framework/ObjectManager/Factory/Compiled.php(108): Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject('Magento\\Advance...', Array)
#1 [PATH]/web/vendor/magento/framework/ObjectManager/Factory/Compiled.php(150): Magento\Framework\ObjectManager\Factory\Compiled->create('Magento\\Advance...')
#2 [PATH]/web/vendor/magento/framework/ObjectManager/Factory/Compiled.php(79): Magento\Framework\ObjectManager\Factory\Compiled->get('Magento\\Advance...')
#3 [PATH]/web/vendor/magento/framework/ObjectManager/Factory/Compiled.php(150): Magento\Framework\ObjectManager\Factory\Compiled->create('Magento\\Elastic...')
#4 [PATH]/web/vendor/magento/framework/ObjectManager/Factory/Compiled.php(79): Magento\Framework\ObjectManager\Factory\Compiled->get('Magento\\Elastic...')
#5 [PATH]/web/vendor/magento/framework/ObjectManager/ObjectManager.php(59): Magento\Framework\ObjectManager\Factory\Compiled->create('Magento\\OpenSea...', Array)
#6 [PATH]/web/vendor/magento/module-search/Model/AdapterFactory.php(87): Magento\Framework\ObjectManager\ObjectManager->create('\\Magento\\OpenSe...', Array)
#7 [PATH]/web/vendor/magento/module-search/Model/SearchEngine.php(53): Magento\Search\Model\AdapterFactory->create()
#8 [PATH]/web/vendor/magento/module-search/Model/SearchEngine.php(42): Magento\Search\Model\SearchEngine->getConnection()
#9 [PATH]/web/vendor/magento/framework/Search/Search.php(85): Magento\Search\Model\SearchEngine->search(Object(Magento\Framework\Search\Request))
#10 [PATH]/web/vendor/magento/module-catalog-search/Model/ResourceModel/Fulltext/Collection.php(478): Magento\Framework\Search\Search->search(Object(Magento\Framework\Api\Search\SearchCriteria))
#11 [PATH]/web/vendor/magento/framework/Data/Collection/AbstractDb.php(567): Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection->_renderFiltersBefore()
#12 [PATH]/web/vendor/magento/module-catalog-search/Model/ResourceModel/Fulltext/Collection.php(596): Magento\Framework\Data\Collection\AbstractDb->_renderFilters()
#13 [PATH]/web/vendor/magento/module-eav/Model/Entity/Collection/AbstractCollection.php(951): Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection->_renderFilters()
#14 [PATH]/web/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection.php(835): Magento\Eav\Model\Entity\Collection\AbstractCollection->load(false, false)
#15 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Catalog\Model\ResourceModel\Product\Collection->load(false, false)
#16 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\Interceptor->___callParent('load', Array)
#17 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\Interceptor->Magento\Framework\Interception\{closure}()
#18 [PATH]/web/generated/code/Magento/CatalogSearch/Model/ResourceModel/Fulltext/Collection/Interceptor.php(32): Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\Interceptor->___callPlugins('load', Array, Array)
#19 [PATH]/web/vendor/magento/framework/Data/Collection.php(847): Magento\CatalogSearch\Model\ResourceModel\Fulltext\Collection\Interceptor->load()
#20 [PATH]/web/vendor/magento/module-catalog/Model/ResourceModel/Product/Collection.php(1676): Magento\Framework\Data\Collection->getIterator()
#21 [PATH]/web/app/code/Orange35/Colorpickercustom/Observer/ProductListCollection.php(32): Magento\Catalog\Model\ResourceModel\Product\Collection->addOptionsToResult()
#22 [PATH]/web/vendor/magento/framework/Event/Invoker/InvokerDefault.php(88): Orange35\Colorpickercustom\Observer\ProductListCollection->execute(Object(Magento\Framework\Event\Observer))
#23 [PATH]/web/vendor/magento/framework/Event/Invoker/InvokerDefault.php(74): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod(Object(Orange35\Colorpickercustom\Observer\ProductListCollection), Object(Magento\Framework\Event\Observer))
#24 [PATH]/web/vendor/magento/framework/Event/Manager.php(65): Magento\Framework\Event\Invoker\InvokerDefault->dispatch(Array, Object(Magento\Framework\Event\Observer))
#25 [PATH]/web/generated/code/Magento/Framework/Event/Manager/Proxy.php(105): Magento\Framework\Event\Manager->dispatch('catalog_block_p...', Array)
#26 [PATH]/web/vendor/magento/module-catalog/Block/Product/ListProduct.php(513): Magento\Framework\Event\Manager\Proxy->dispatch('catalog_block_p...', Array)
#27 [PATH]/web/vendor/magento/module-catalog/Block/Product/ListProduct.php(134): Magento\Catalog\Block\Product\ListProduct->initializeProductCollection()
#28 [PATH]/web/vendor/magento/module-catalog/Block/Product/ListProduct.php(206): Magento\Catalog\Block\Product\ListProduct->_getProductCollection()
#29 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(1127): Magento\Catalog\Block\Product\ListProduct->_beforeToHtml()
#30 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(1132): Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}()
#31 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(676): Magento\Framework\View\Element\AbstractBlock->_loadCache()
#32 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Element\AbstractBlock->toHtml()
#33 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Catalog\Block\Product\ListProduct\Interceptor->___callParent('toHtml', Array)
#34 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Catalog\Block\Product\ListProduct\Interceptor->Magento\Framework\Interception\{closure}()
#35 [PATH]/web/generated/code/Magento/Catalog/Block/Product/ListProduct/Interceptor.php(50): Magento\Catalog\Block\Product\ListProduct\Interceptor->___callPlugins('toHtml', Array, Array)
#36 [PATH]/web/vendor/magento/framework/View/Layout.php(578): Magento\Catalog\Block\Product\ListProduct\Interceptor->toHtml()
#37 [PATH]/web/vendor/magento/framework/View/Layout.php(555): Magento\Framework\View\Layout->_renderBlock('search_result_l...')
#38 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('search_result_l...')
#39 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(523): Magento\Framework\View\Layout->renderElement('search_result_l...', true)
#40 [PATH]/web/vendor/magento/module-catalog-search/Block/Result.php(171): Magento\Framework\View\Element\AbstractBlock->getChildHtml('search_result_l...')
#41 [PATH]/web/vendor/magento/module-catalog-search/view/frontend/templates/result.phtml(13): Magento\CatalogSearch\Block\Result->getProductListHtml()
#42 [PATH]/web/vendor/magento/framework/View/TemplateEngine/Php.php(67): include('/Users/vandy/Wi...')
#43 [PATH]/web/vendor/magento/framework/View/Element/Template.php(263): Magento\Framework\View\TemplateEngine\Php->render(Object(Magento\CatalogSearch\Block\Result), '/Users/vandy/Wi...', Array)
#44 [PATH]/web/vendor/magento/framework/View/Element/Template.php(293): Magento\Framework\View\Element\Template->fetchView('/Users/vandy/Wi...')
#45 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(1128): Magento\Framework\View\Element\Template->_toHtml()
#46 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(1132): Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}()
#47 [PATH]/web/vendor/magento/framework/View/Element/AbstractBlock.php(676): Magento\Framework\View\Element\AbstractBlock->_loadCache()
#48 [PATH]/web/vendor/magento/framework/View/Layout.php(578): Magento\Framework\View\Element\AbstractBlock->toHtml()
#49 [PATH]/web/vendor/magento/framework/View/Layout.php(555): Magento\Framework\View\Layout->_renderBlock('search.result')
#50 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('search.result')
#51 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('search.result', false)
#52 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('content', false)
#53 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('content')
#54 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('content', false)
#55 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('main', false)
#56 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('main')
#57 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('main', false)
#58 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('columns', false)
#59 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('columns')
#60 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('columns', false)
#61 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('main.content', false)
#62 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('main.content')
#63 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('main.content', false)
#64 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('main.content.wr...', false)
#65 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('main.content.wr...')
#66 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('main.content.wr...', false)
#67 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('page.wrapper', false)
#68 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper')
#69 [PATH]/web/vendor/magento/framework/View/Layout.php(606): Magento\Framework\View\Layout->renderElement('page.wrapper', false)
#70 [PATH]/web/vendor/magento/framework/View/Layout.php(557): Magento\Framework\View\Layout->_renderContainer('root', false)
#71 [PATH]/web/vendor/magento/framework/View/Layout.php(510): Magento\Framework\View\Layout->renderNonCachedElement('root')
#72 [PATH]/web/vendor/magento/framework/View/Layout.php(978): Magento\Framework\View\Layout->renderElement('root')
#73 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Layout->getOutput()
#74 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\Layout\Interceptor->___callParent('getOutput', Array)
#75 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}()
#76 [PATH]/web/generated/code/Magento/Framework/View/Layout/Interceptor.php(50): Magento\Framework\View\Layout\Interceptor->___callPlugins('getOutput', Array, Array)
#77 [PATH]/web/vendor/magento/framework/View/Result/Page.php(284): Magento\Framework\View\Layout\Interceptor->getOutput()
#78 [PATH]/web/vendor/magento/framework/View/Result/Layout.php(171): Magento\Framework\View\Result\Page->render(Object(Magento\Framework\App\Response\Http\Interceptor))
#79 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\View\Result\Layout->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#80 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\View\Result\Page\Interceptor->___callParent('renderResult', Array)
#81 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Response\Http\Interceptor))
#82 [PATH]/web/generated/code/Magento/Framework/View/Result/Page/Interceptor.php(32): Magento\Framework\View\Result\Page\Interceptor->___callPlugins('renderResult', Array, Array)
#83 [PATH]/web/vendor/magento/framework/App/View.php(221): Magento\Framework\View\Result\Page\Interceptor->renderResult(Object(Magento\Framework\App\Response\Http\Interceptor))
#84 [PATH]/web/vendor/magento/module-catalog-search/Controller/Result/Index.php(168): Magento\Framework\App\View->renderLayout()
#85 [PATH]/web/vendor/magento/module-catalog-search/Controller/Result/Index.php(110): Magento\CatalogSearch\Controller\Result\Index->getNotCacheableResult(Object(Magento\CatalogSearch\Helper\Data), Object(Magento\Search\Model\Query), NULL)
#86 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\CatalogSearch\Controller\Result\Index->execute()
#87 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\CatalogSearch\Controller\Result\Index\Interceptor->___callParent('execute', Array)
#88 [PATH]/web/app/code/Mango/Ajaxlayerednavigation/Controller/Plugin/CatalogSearch/Result/Index.php(76): Magento\CatalogSearch\Controller\Result\Index\Interceptor->Magento\Framework\Interception\{closure}()
#89 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(135): Mango\Ajaxlayerednavigation\Controller\Plugin\CatalogSearch\Result\Index->aroundExecute(Object(Magento\CatalogSearch\Controller\Result\Index\Interceptor), Object(Closure))
#90 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\CatalogSearch\Controller\Result\Index\Interceptor->Magento\Framework\Interception\{closure}()
#91 [PATH]/web/generated/code/Magento/CatalogSearch/Controller/Result/Index/Interceptor.php(23): Magento\CatalogSearch\Controller\Result\Index\Interceptor->___callPlugins('execute', Array, NULL)
#92 [PATH]/web/vendor/magento/framework/App/Action/Action.php(111): Magento\CatalogSearch\Controller\Result\Index\Interceptor->execute()
#93 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Action\Action->dispatch(Object(Magento\Framework\App\Request\Http))
#94 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\CatalogSearch\Controller\Result\Index\Interceptor->___callParent('dispatch', Array)
#95 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\CatalogSearch\Controller\Result\Index\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#96 [PATH]/web/generated/code/Magento/CatalogSearch/Controller/Result/Index/Interceptor.php(32): Magento\CatalogSearch\Controller\Result\Index\Interceptor->___callPlugins('dispatch', Array, Array)
#97 [PATH]/web/vendor/magento/framework/App/FrontController.php(245): Magento\CatalogSearch\Controller\Result\Index\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#98 [PATH]/web/vendor/magento/framework/App/FrontController.php(212): Magento\Framework\App\FrontController->getActionResponse(Object(Magento\CatalogSearch\Controller\Result\Index\Interceptor), Object(Magento\Framework\App\Request\Http))
#99 [PATH]/web/vendor/magento/framework/App/FrontController.php(146): Magento\Framework\App\FrontController->processRequest(Object(Magento\Framework\App\Request\Http), Object(Magento\CatalogSearch\Controller\Result\Index\Interceptor))
#100 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\FrontController->dispatch(Object(Magento\Framework\App\Request\Http))
#101 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\FrontController\Interceptor->___callParent('dispatch', Array)
#102 [PATH]/web/vendor/magento/module-store/App/FrontController/Plugin/RequestPreprocessor.php(99): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#103 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(135): Magento\Store\App\FrontController\Plugin\RequestPreprocessor->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#104 [PATH]/web/vendor/magento/module-page-cache/Model/App/FrontController/BuiltinPlugin.php(72): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#105 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(135): Magento\PageCache\Model\App\FrontController\BuiltinPlugin->aroundDispatch(Object(Magento\Framework\App\FrontController\Interceptor), Object(Closure), Object(Magento\Framework\App\Request\Http))
#106 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\FrontController\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#107 [PATH]/web/generated/code/Magento/Framework/App/FrontController/Interceptor.php(23): Magento\Framework\App\FrontController\Interceptor->___callPlugins('dispatch', Array, Array)
#108 [PATH]/web/vendor/magento/framework/App/Http.php(116): Magento\Framework\App\FrontController\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#109 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Framework\App\Http->launch()
#110 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Framework\App\Http\Interceptor->___callParent('launch', Array)
#111 [PATH]/web/vendor/magento/module-application-performance-monitor/Plugin/ApplicationPerformanceMonitor.php(38): Magento\Framework\App\Http\Interceptor->Magento\Framework\Interception\{closure}()
#112 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(135): Magento\ApplicationPerformanceMonitor\Plugin\ApplicationPerformanceMonitor->aroundLaunch(Object(Magento\Framework\App\Http\Interceptor), Object(Closure))
#113 [PATH]/web/vendor/graycore/magento2-cors/Plugin/FastLauncher.php(71): Magento\Framework\App\Http\Interceptor->Magento\Framework\Interception\{closure}()
#114 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(135): Graycore\Cors\Plugin\FastLauncher->aroundLaunch(Object(Magento\Framework\App\Http\Interceptor), Object(Closure))
#115 [PATH]/web/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Framework\App\Http\Interceptor->Magento\Framework\Interception\{closure}()
#116 [PATH]/web/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http\Interceptor->___callPlugins('launch', Array, NULL)
#117 [PATH]/web/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#118 [PATH]/web/pub/index.php(126): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#119 {main}
Additional information
Enabling just Magento_Elasticsearch
makes it work again.
Release note
No response
Triage and priority
- Severity: S0 - Affects critical data or functionality and leaves users without workaround.
- Severity: S1 - Affects critical data or functionality and forces users to employ a workaround.
- Severity: S2 - Affects non-critical data or functionality and forces users to employ a workaround.
- Severity: S3 - Affects non-critical data or functionality and does not force users to employ a workaround.
- Severity: S4 - Affects aesthetics, professional look and feel, “quality” or “usability”.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Ready for Development