Smile-SA / elasticsuite

Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch
https://elasticsuite.io
Open Software License 3.0
761 stars 341 forks source link

Virtual Category module suddenly throwing errors #1985

Closed Quazz closed 1 year ago

Quazz commented 4 years ago

After updating some packages (not elasticsuite itself) with composer (none of them related to layered navigation), Virtual Category module throws an error:

For frontend:

Warning: call_user_func_array() expects parameter 1 to be a valid callback, class '{"type":"Smile\\ElasticsuiteVirtualCategory\\Model\\Rule\\Condition\\Combine","attribute":null,"operator":null,"value":"1","is_value_processed":null,"aggregator":"all"}' not found in vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php on line 67

And for backend:

main.CRITICAL: Error: Call to a member function getCategorySearchQuery() on string in vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Model/Preview.php:116

And for virtual categories on backend:

main.CRITICAL: Error: Call to a member function loadPost() on string in vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Controller/Adminhtml/Category/Virtual/Preview.php:144

The odd thing is; it was working perfectly fine before. I had this error about two weeks ago, but then after a while of trying to figure it out and debugging, I turned the module back on and it worked normally again.

Looking through the history of issues; this seems to appear every once in a while, but no real conclusive answer.

Preconditions

Magento Version : 2.4.0

ElasticSuite Version : 2.10.1

Environment : Production

Third party modules : Loads, none of them impact layered navigation, however (fully handled by elasticsuite)

Steps to reproduce

No clue how to reproduce, given that it happened out of the blue. I do use optimizers on every category which is why I guess all categories go 500

Expected result

Category pages load normally

Actual result

Category page returns error 500 and logs the critical error in system.log

Quazz commented 4 years ago

Is there a way to determine what the cause is?

It seems like ->getVirtualRule() is returning a string when an object is expected.

Quazz commented 4 years ago

After commenting out line 116 in Preview.php

I am now manually saving categories that don't have is_virtual attribute, found by query:

SELECT entity_id FROM catalog_category_entity WHERE NOT EXISTS (SELECT * FROM catalog_category_entity_int WHERE catalog_category_entity_int.entity_id = catalog_category_entity.entity_id AND attribute_id = 343) ORDER BY catalog_category_entity.entity_id DESC (343 being is_virtual attribute_id in my case)

This seems to save the info for those categories. I hope that this resolves it; it's over 100 categories so may take some time.

EDIT: All of them have the attribute now, but still the same problem.

Now I'm checking the other 'virtual' attributes, looks like some of them don't exist for certain categories somehow.

EDIT: I looped through it all, some don't have a virtual_rule, but I can't fix that by saving category when the category can't load said rules for saving in the first place...

So I added them in manually.

Looks like they are categories that get imported (but some of them have been there for years), rather than created through the backend.

Still, even after all that being fixed, it still doesn't work.

Quazz commented 4 years ago

Manually adding a check to verify if the virtualrule is an object and if not to exectute the ReadHandler seems to resolve it for me.

if (!is_object($virtualRule)) { $this->virtualRuleReadHandler->execute($category); $virtualRule = $category->getVirtualRule(); }

That said, it seems like this shouldn't be necessary and makes me wonder why it doesn't work out of the box (anymore)

romainruaud commented 4 years ago

You are right, the "check if object and call the read handler if it's not" should not be needed since the read handler is supposed to be called every time we load a category.

That's not the first time I see this kind of issue by the way, despite I've never been able to reproduce it by myself.

I think this is really due to the fact that some categories do not have any value for virtual_rule (that's step 1) and then, for unknown reasons, we don't go through the read handler when loading them (that's step 2), and we run into failure.

I'm wondering what could cause the read handler not being called when loading a category. However, there's not much I can do myself here, since I'm not able to reproduce it. Maybe your scenario is detailed enough to be reproduced, we'll try to have a look but since this one seems to be very specific to something unknow, it's not high priority for now : we never faced it on a Luma/Venia even if the sample data in this case does not have particular virtual_rule contributed for all categories.

Regards

Quazz commented 4 years ago

Yes, the weird thing is that it was working fine before and then suddenly it wasn't anymore.

I see that the readhandler is supposed to be applied in the ResourceModel.

I'll see if I can find something related to that. I did a quick search last time that came up empty though.

EDIT: Didn't find anything that extends the same Magento collection.

Quazz commented 3 years ago

Still can't wrap my head around it.

In the ResourceModel/VirtualCategory/Collection the getVirtualRule() definitely returns an object, but then when you navigate to one of the pages it is suddenly just a string?

romainruaud commented 3 years ago

Yes unfortunately I came to the same conclusion but never reproduced it.

Maybe something related to caching, or to Varnish fragments for the layered navigation in some edge cases ?

Quazz commented 3 years ago

Unfortunately, we don't use Varnish. We use redis for all our caching (seperate instance for session and cache)

And it also happens in the backend on category management page.

It also either works entirely or not at all, not specific to any category or such. Same stuff happens even when cache is disabled and so forth. Ultimately, I can only conclude it must have something to do with the resourcemodel or the categorymodel itself somehow.

Quazz commented 3 years ago

Small update: I test if it works primarily on the backend so the frontend is undisturbed.

By modifying Preview.php I can make it load normally. What I noticed today was that Virtual Categories still load fine regardless, but normal ones do not. Interesting data point to say the least.

Quazz commented 3 years ago

One thing I have noticed is that the store_id for the rule in the resourcemodel is 0 (of course), but when loading a category in "All store views" it ends up adopting the default storeview for the current category root instead of the admin storeview.

I can't compare with a working version myself, unfortunately. Might be completely normal. Just trying to note down differences that could point in the right direction.

misthero commented 3 years ago

I have the same issue with es 2.9.6 and magento 2.3.6

davidandersson1 commented 3 years ago

exact same issue for us with magento version 2.3.5 and elasticsuite version ~2.9.0.

lots of times, same error generated in log/exception.log file.

Is there any solution for this bug?

Quazz commented 3 years ago

Soooo, still not sure what the cause is, but after installing https://github.com/creatuity/magento2-interceptors module, I no longer experience this issue.

Perhaps a bug in Magento core regarding interceptor generation in certain edge cases?

Quazz commented 3 years ago

I have since disabled the interceptor module, upgraded to 2.4.2 and Elasticsuite to 2.10.3 and it works without issue again.

jtomaszewski commented 3 years ago

We don't use interceptors module. This bug started appearing to us today, after we've upgraded magento from 2.4.1 to 2.4.2 and also a lot of other modules. (So hard to tell, whether it was the magento update, or which module exactly...)

Here is our error stacktrace:

1 exception(s):
Exception #0 (Exception): Warning: call_user_func_array() expects parameter 1 to be a valid callback, class '{"type":"Smile\\ElasticsuiteVirtualCategory\\Model\\Rule\\Condition\\Combine","attribute":null,"operator":null,"value":true,"is_value_processed":null,"aggregator":"all"}' not found in /Users/jacek/src/groomershop/magento2/vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php on line 67

Exception #0 (Exception): Warning: call_user_func_array() expects parameter 1 to be a valid callback, class '{"type":"Smile\\ElasticsuiteVirtualCategory\\Model\\Rule\\Condition\\Combine","attribute":null,"operator":null,"value":true,"is_value_processed":null,"aggregator":"all"}' not found in /Users/jacek/src/groomershop/magento2/vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php on line 67
<pre>#1 call_user_func_array() called at [vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php:67]
#2 Smile\ElasticsuiteVirtualCategory\Helper\Rule->loadUsingCache() called at [vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Search/Request/Product/Attribute/Aggregation/Category.php:89]
#3 Smile\ElasticsuiteVirtualCategory\Search\Request\Product\Attribute\Aggregation\Category->getFacetQueries() called at [vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Search/Request/Product/Attribute/Aggregation/Category.php:74]
#4 Smile\ElasticsuiteVirtualCategory\Search\Request\Product\Attribute\Aggregation\Category->getAggregationData() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Search/Request/Product/Attribute/AggregationResolver.php:83]
#5 Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver->getAggregationData() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#6 Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#7 Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#8 Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver\Interceptor->___callPlugins() called at [generated/code/Smile/ElasticsuiteCatalog/Search/Request/Product/Attribute/AggregationResolver/Interceptor.php:23]
#9 Smile\ElasticsuiteCatalog\Search\Request\Product\Attribute\AggregationResolver\Interceptor->getAggregationData() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Search/Request/Product/Aggregation/Provider/FilterableAttributes.php:122]
#10 Smile\ElasticsuiteCatalog\Search\Request\Product\Aggregation\Provider\FilterableAttributes->getBucketConfig() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Search/Request/Product/Aggregation/Provider/FilterableAttributes.php:104]
#11 Smile\ElasticsuiteCatalog\Search\Request\Product\Aggregation\Provider\FilterableAttributes->getAggregationsConfig() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Search/Request/Product/Aggregation/Provider/FilterableAttributes.php:84]
#12 Smile\ElasticsuiteCatalog\Search\Request\Product\Aggregation\Provider\FilterableAttributes->getAggregations() called at [vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/ContainerConfiguration.php:156]
#13 Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration->getAggregations() called at [vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/ContainerConfiguration/Aggregation/Resolver.php:37]
#14 Smile\ElasticsuiteCore\Search\Request\ContainerConfiguration\Aggregation\Resolver->getContainerAggregations() called at [vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/Builder.php:205]
#15 Smile\ElasticsuiteCore\Search\Request\Builder->getContainerAggregations() called at [vendor/smile/elasticsuite/src/module-elasticsuite-core/Search/Request/Builder.php:147]
#16 Smile\ElasticsuiteCore\Search\Request\Builder->create() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php:570]
#17 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->loadProductCounts() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php:195]
#18 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->getSize() called at [generated/code/Smile/ElasticsuiteCatalog/Model/ResourceModel/Product/Fulltext/Collection/Interceptor.php:23]
#19 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection\Interceptor->getSize() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php:425]
#20 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->getPageSize() called at [generated/code/Smile/ElasticsuiteCatalog/Model/ResourceModel/Product/Fulltext/Collection/Interceptor.php:158]
#21 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection\Interceptor->getPageSize() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php:613]
#22 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->prepareRequest() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php:455]
#23 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFiltersBefore() called at [vendor/magento/framework/Data/Collection/AbstractDb.php:343]
#24 Magento\Framework\Data\Collection\AbstractDb->_renderFilters() called at [vendor/smile/elasticsuite/src/module-elasticsuite-catalog/Model/ResourceModel/Product/Fulltext/Collection.php:512]
#25 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection->_renderFilters() called at [vendor/magento/module-eav/Model/Entity/Collection/AbstractCollection.php:926]
#26 Magento\Eav\Model\Entity\Collection\AbstractCollection->load() called at [vendor/magento/module-catalog/Model/ResourceModel/Product/Collection.php:833]
#27 Magento\Catalog\Model\ResourceModel\Product\Collection->load() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#28 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#29 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#30 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection\Interceptor->___callPlugins() called at [generated/code/Smile/ElasticsuiteCatalog/Model/ResourceModel/Product/Fulltext/Collection/Interceptor.php:293]
#31 Smile\ElasticsuiteCatalog\Model\ResourceModel\Product\Fulltext\Collection\Interceptor->load() called at [vendor/magento/module-catalog/Block/Product/ListProduct.php:205]
#32 Magento\Catalog\Block\Product\ListProduct->_beforeToHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1110]
#33 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#34 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#35 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#36 Groomershop\SwatchTable\Block\Tile\Fragment\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#37 Groomershop\SwatchTable\Block\Tile\Fragment\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/amasty/module-quick-order/Plugin/Catalog/Block/Product/ListProductPlugin.php:47]
#38 Amasty\QuickOrder\Plugin\Catalog\Block\Product\ListProductPlugin->aroundToHtml() called at [vendor/magento/framework/Interception/Interceptor.php:135]
#39 Groomershop\SwatchTable\Block\Tile\Fragment\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#40 Groomershop\SwatchTable\Block\Tile\Fragment\Interceptor->___callPlugins() called at [generated/code/Groomershop/SwatchTable/Block/Tile/Fragment/Interceptor.php:626]
#41 Groomershop\SwatchTable\Block\Tile\Fragment\Interceptor->toHtml() called at [vendor/groomershop/module-swatch-table/view/frontend/templates/product/listing/renderer.phtml:82]
#42 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#43 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#44 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#45 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#46 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#47 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#48 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#49 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#50 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#51 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->___callPlugins() called at [generated/code/Groomershop/SwatchTable/Block/Product/Renderer/Listing/Configurable/Interceptor.php:455]
#52 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#53 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/magento/module-swatches/Block/Product/Renderer/Configurable.php:481]
#54 Magento\Swatches\Block\Product\Renderer\Configurable->getHtmlOutput() called at [vendor/magento/module-swatches/Block/Product/Renderer/Configurable.php:459]
#55 Magento\Swatches\Block\Product\Renderer\Configurable->_toHtml() called at [vendor/magento/module-swatches/Block/Product/Renderer/Listing/Configurable.php:125]
#56 Magento\Swatches\Block\Product\Renderer\Listing\Configurable->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#57 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/Cache/LockGuardedCacheLoader.php:136]
#58 Magento\Framework\Cache\LockGuardedCacheLoader->lockedLoadData() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1133]
#59 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#60 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/module-swatches/Block/Product/Renderer/Configurable.php:449]
#61 Magento\Swatches\Block\Product\Renderer\Configurable->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#62 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#63 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#64 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->___callPlugins() called at [generated/code/Groomershop/SwatchTable/Block/Product/Renderer/Listing/Configurable/Interceptor.php:104]
#65 Groomershop\SwatchTable\Block\Product\Renderer\Listing\Configurable\Interceptor->toHtml() called at [vendor/magento/module-catalog/Block/Product/AbstractProduct.php:471]
#66 Magento\Catalog\Block\Product\AbstractProduct->getProductDetailsHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Fragment/Interceptor.php:383]
#67 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->getProductDetailsHtml() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/fragments/swatches.phtml:1]
#68 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#69 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#70 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#71 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#72 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#73 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#74 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#75 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#76 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#77 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Fragment/Interceptor.php:464]
#78 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#79 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Fragment.php:63]
#80 MageSuite\ProductTile\Block\Tile\Fragment->_toHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Fragment/Interceptor.php:59]
#81 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#82 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#83 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Fragment.php:100]
#84 MageSuite\ProductTile\Block\Tile\Fragment->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#85 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#86 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/amasty/module-quick-order/Plugin/Catalog/Block/Product/ListProductPlugin.php:47]
#87 Amasty\QuickOrder\Plugin\Catalog\Block\Product\ListProductPlugin->aroundToHtml() called at [vendor/magento/framework/Interception/Interceptor.php:135]
#88 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#89 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Fragment/Interceptor.php:95]
#90 MageSuite\ProductTile\Block\Tile\Fragment\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#91 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#92 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#93 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#94 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#95 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/container.phtml:11]
#96 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#97 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#98 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#99 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#100 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#101 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#102 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#103 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#104 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#105 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:149]
#106 MageSuite\ProductTile\Block\Tile\Container\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#107 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:106]
#108 MageSuite\ProductTile\Block\Tile\Container->_toHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:86]
#109 MageSuite\ProductTile\Block\Tile\Container\Interceptor->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#110 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#111 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:97]
#112 MageSuite\ProductTile\Block\Tile\Container->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#113 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#114 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#115 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:77]
#116 MageSuite\ProductTile\Block\Tile\Container\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#117 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#118 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#119 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#120 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#121 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/container.phtml:11]
#122 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#123 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#124 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#125 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#126 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#127 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#128 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#129 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#130 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#131 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:149]
#132 MageSuite\ProductTile\Block\Tile\Container\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#133 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:106]
#134 MageSuite\ProductTile\Block\Tile\Container->_toHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:86]
#135 MageSuite\ProductTile\Block\Tile\Container\Interceptor->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#136 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#137 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:97]
#138 MageSuite\ProductTile\Block\Tile\Container->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#139 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#140 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#141 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:77]
#142 MageSuite\ProductTile\Block\Tile\Container\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#143 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#144 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#145 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#146 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#147 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/container.phtml:11]
#148 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#149 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#150 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#151 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#152 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#153 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#154 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#155 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#156 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#157 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:149]
#158 MageSuite\ProductTile\Block\Tile\Container\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#159 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:106]
#160 MageSuite\ProductTile\Block\Tile\Container->_toHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:86]
#161 MageSuite\ProductTile\Block\Tile\Container\Interceptor->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#162 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#163 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:97]
#164 MageSuite\ProductTile\Block\Tile\Container->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#165 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#166 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#167 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:77]
#168 MageSuite\ProductTile\Block\Tile\Container\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#169 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#170 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#171 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#172 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#173 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/container.phtml:11]
#174 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#175 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#176 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#177 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#178 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#179 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#180 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#181 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#182 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#183 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:149]
#184 MageSuite\ProductTile\Block\Tile\Container\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#185 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:106]
#186 MageSuite\ProductTile\Block\Tile\Container->_toHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:86]
#187 MageSuite\ProductTile\Block\Tile\Container\Interceptor->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#188 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#189 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:97]
#190 MageSuite\ProductTile\Block\Tile\Container->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#191 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#192 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#193 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:77]
#194 MageSuite\ProductTile\Block\Tile\Container\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#195 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#196 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#197 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#198 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#199 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/container.phtml:11]
#200 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#201 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#202 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#203 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#204 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#205 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#206 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#207 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#208 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#209 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:149]
#210 MageSuite\ProductTile\Block\Tile\Container\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#211 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:106]
#212 MageSuite\ProductTile\Block\Tile\Container->_toHtml() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:86]
#213 MageSuite\ProductTile\Block\Tile\Container\Interceptor->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#214 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#215 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile/Container.php:97]
#216 MageSuite\ProductTile\Block\Tile\Container->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#217 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#218 MageSuite\ProductTile\Block\Tile\Container\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#219 MageSuite\ProductTile\Block\Tile\Container\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Container/Interceptor.php:77]
#220 MageSuite\ProductTile\Block\Tile\Container\Interceptor->toHtml() called at [vendor/creativestyle/magesuite-product-tile/view/frontend/templates/tile.phtml:14]
#221 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#222 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#223 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#224 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#225 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#226 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#227 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#228 MageSuite\ProductTile\Block\Tile\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#229 MageSuite\ProductTile\Block\Tile\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#230 MageSuite\ProductTile\Block\Tile\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Interceptor.php:329]
#231 MageSuite\ProductTile\Block\Tile\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#232 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile.php:47]
#233 MageSuite\ProductTile\Block\Tile->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#234 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/Cache/LockGuardedCacheLoader.php:136]
#235 Magento\Framework\Cache\LockGuardedCacheLoader->lockedLoadData() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1133]
#236 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#237 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#238 MageSuite\ProductTile\Block\Tile\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#239 MageSuite\ProductTile\Block\Tile\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#240 MageSuite\ProductTile\Block\Tile\Interceptor->___callPlugins() called at [generated/code/MageSuite/ProductTile/Block/Tile/Interceptor.php:545]
#241 MageSuite\ProductTile\Block\Tile\Interceptor->toHtml() called at [vendor/creativestyle/magesuite-product-tile/Block/Tile.php:25]
#242 MageSuite\ProductTile\Block\Tile->render() called at [generated/code/MageSuite/ProductTile/Block/Tile/Interceptor.php:23]
#243 MageSuite\ProductTile\Block\Tile\Interceptor->render() called at [vendor/creativestyle/magesuite-content-constructor-frontend/Service/ProductTileRenderer.php:24]
#244 MageSuite\ContentConstructorFrontend\Service\ProductTileRenderer->render() called at [vendor/creativestyle/magesuite-content-constructor-frontend/Model/Component/ProductCarousel.php:43]
#245 MageSuite\ContentConstructorFrontend\Model\Component\ProductCarousel->renderProductTile() called at [vendor/creativestyle/magesuite-content-constructor-frontend/view/frontend/templates/component/product_carousel.phtml:31]
#246 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#247 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#248 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#249 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#250 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#251 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#252 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#253 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#254 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#255 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->___callPlugins() called at [generated/code/MageSuite/ContentConstructorFrontend/Block/Component/ProductCarousel/Interceptor.php:131]
#256 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#257 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#258 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#259 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#260 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/creativestyle/magesuite-content-constructor-frontend/Block/Component/AbstractComponent.php:80]
#261 MageSuite\ContentConstructorFrontend\Block\Component\AbstractComponent->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#262 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#263 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#264 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->___callPlugins() called at [generated/code/MageSuite/ContentConstructorFrontend/Block/Component/ProductCarousel/Interceptor.php:68]
#265 MageSuite\ContentConstructorFrontend\Block\Component\ProductCarousel\Interceptor->toHtml() called at [vendor/creativestyle/magesuite-content-constructor-frontend/Block/Component.php:107]
#266 MageSuite\ContentConstructorFrontend\Block\Component->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#267 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/Cache/LockGuardedCacheLoader.php:136]
#268 Magento\Framework\Cache\LockGuardedCacheLoader->lockedLoadData() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1133]
#269 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#270 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [app/design/frontend/creativestyle/theme-creativeshop/Magento_Catalog/templates/product/list/items.phtml:199]
#271 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#272 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#273 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#274 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#275 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#276 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#277 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#278 Anowave\Ec\Preference\Upsell\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#279 Anowave\Ec\Preference\Upsell\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#280 Anowave\Ec\Preference\Upsell\Interceptor->___callPlugins() called at [generated/code/Anowave/Ec/Preference/Upsell/Interceptor.php:374]
#281 Anowave\Ec\Preference\Upsell\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#282 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/anowave/ec/Preference/Upsell.php:48]
#283 Anowave\Ec\Preference\Upsell->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#284 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#285 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#286 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#287 Anowave\Ec\Preference\Upsell\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#288 Anowave\Ec\Preference\Upsell\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#289 Anowave\Ec\Preference\Upsell\Interceptor->___callPlugins() called at [generated/code/Anowave/Ec/Preference/Upsell/Interceptor.php:599]
#290 Anowave\Ec\Preference\Upsell\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#291 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#292 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#293 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#294 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#295 Magento\Framework\View\Layout\Interceptor->renderElement() called at [app/design/frontend/creativestyle/theme-creativeshop/Magento_Catalog/templates/product/view/nav.phtml:19]
#296 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#297 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#298 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#299 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#300 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23]
#301 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:273]
#302 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#303 Magento\Framework\View\Element\Template\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#304 Magento\Framework\View\Element\Template\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#305 Magento\Framework\View\Element\Template\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/Element/Template/Interceptor.php:77]
#306 Magento\Framework\View\Element\Template\Interceptor->fetchView() called at [vendor/magento/framework/View/Element/Template.php:303]
#307 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#308 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#309 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#310 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#311 Magento\Framework\View\Element\Template\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#312 Magento\Framework\View\Element\Template\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#313 Magento\Framework\View\Element\Template\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/Element/Template/Interceptor.php:302]
#314 Magento\Framework\View\Element\Template\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:578]
#315 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555]
#316 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#317 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#318 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#319 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#320 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#321 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#322 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#323 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#324 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#325 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#326 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#327 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#328 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#329 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#330 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#331 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#332 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#333 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#334 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#335 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#336 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#337 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#338 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#339 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#340 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#341 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#342 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#343 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#344 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#345 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#346 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#347 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#348 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#349 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#350 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#351 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#352 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#353 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#354 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:606]
#355 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557]
#356 Magento\Framework\View\Layout->renderNonCachedElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#357 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510]
#358 Magento\Framework\View\Layout->renderElement() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#359 Magento\Framework\View\Layout\Interceptor->renderElement() called at [vendor/magento/framework/View/Layout.php:975]
#360 Magento\Framework\View\Layout->getOutput() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#361 Magento\Framework\View\Layout\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#362 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#363 Magento\Framework\View\Layout\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:347]
#364 Magento\Framework\View\Layout\Interceptor->getOutput() called at [vendor/magento/framework/View/Result/Page.php:258]
#365 Magento\Framework\View\Result\Page->render() called at [vendor/magento/framework/View/Result/Layout.php:171]
#366 Magento\Framework\View\Result\Layout->renderResult() called at [vendor/magento/framework/Interception/Interceptor.php:58]
#367 Magento\Framework\View\Result\Page\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138]
#368 Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#369 Magento\Framework\View\Result\Page\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/Result/Page/Interceptor.php:95]
#370 Magento\Framework\View\Result\Page\Interceptor->renderResult() called at [vendor/magento/framework/App/Http.php:120]
#371 Magento\Framework\App\Http->launch() called at [generated/code/Magento/Framework/App/Http/Interceptor.php:23]
#372 Magento\Framework\App\Http\Interceptor->launch() called at [vendor/magento/framework/App/Bootstrap.php:263]
#373 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:29]
#374 include() called at [phpserver/router.php:119]
</pre>
blanioo commented 3 years ago

I checked the error and I think I know the issue and steps to reproduce.

Issue appeared for me when I tried to debug one thing after clicking Show more filter options filter

Ajax call execute this action catalog/navigation_filter/ajax/id/57/?cat=57&filterName=material where https://github.com/Smile-SA/elasticsuite/blob/2.10.x/src/module-elasticsuite-catalog/Controller/Navigation/Filter/Ajax.php#L108 method is executed

`private function initLayer() { $this->layerResolver->create($this->getLayerType());

    if ($this->getRequest()->getParam('cat')) {
        $category = $this->categoryFactory->create()->setId($this->getRequest()->getParam('cat'));
        $this->layerResolver->get()->setCurrentCategory($category);
    }

    $this->applyFilters();

    $this->layerResolver->get()->getProductCollection()->setPageSize(0);

    return $this;
}`

$category = $this->categoryFactory->create()->setId($this->getRequest()->getParam('cat')); this code suppose to load category but in fact it just create new object with category id.

Later on method https://github.com/Smile-SA/elasticsuite/blob/2.10.x/src/module-elasticsuite-virtual-category/Search/Request/Product/Attribute/Aggregation/Category.php#L87 is called and loadUsingCache() do not get proper category instance but wrongly created one from initLayer(). The issue do not appear when there is already data in cache, if not then it will throw 500 as described.

As a fix it seems that line https://github.com/Smile-SA/elasticsuite/blob/2.10.x/src/module-elasticsuite-catalog/Controller/Navigation/Filter/Ajax.php#L113 should be changed into:

$category = $this->categoryRepository->get($this->getRequest()->getParam('cat'), $this->storeManager->getStore()->getId());

refueledinc commented 3 years ago

Has anyone managed to get to the bottom of this?

We've been seeing this error in our logs for months now.

We're on M2.4.2CE and ES2.10.3

Warning: call_user_func_array() expects parameter 1 to be a valid callback, class
'{"type":"Smile\\ElasticsuiteVirtualCategory\\Model\\Rule\\Condition\\Combine","attribute":null,"operator":null,"value":"1",
"is_value_processed":null,"aggregator":"all"}' not found in 
vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php on line 67

From what we can tell, we're not having any issue from a user perspective, but the error is added to our logs throughout the day.

melquchiri-tbd commented 2 years ago

I'm getting the same error here

Warning: call_user_func_array() expects parameter 1 to be a valid callback, class
'{"type":"Smile\\ElasticsuiteVirtualCategory\\Model\\Rule\\Condition\\Combine","attribute":null,"operator":null,"value":"1",
"is_value_processed":null,"aggregator":"all"}' not found in 
vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php on line 67
MTheProgrammer commented 1 year ago

In my case $virtualRule is null. Perhaps category is loaded without this attribute.

Stack trace points there: Smile\ElasticsuiteVirtualCategory\Search\Request\Product\Attribute\Aggregation\Category::getCurrentCategory

@blanioo also pointed that incorrect category instance is loaded somewhere

ankurkinex commented 1 year ago

I am also getting similar issue on Magento 2.4.5 P2

report.CRITICAL: TypeError: call_user_func_array(): Argument #1 ($callback) must be a valid callback, first array member is not a valid class name or object in vendor/smile/elasticsuite/src/module-elasticsuite-virtual-category/Helper/Rule.php:76

What is the fix?

romainruaud commented 1 year ago

https://github.com/Smile-SA/elasticsuite/pull/2931 this PR should fix this.

Imho your solution @blanioo was not enough, because there are also some strange cases where the virtualRule is here, but not empty, just the "text based" value and not the object.

So I added an authoritative call to the read handler in such cases.

I'm still not able to reproduce this however, it's probably very dependant on other modules in the call stack.

Regards