Search code examples
shopwareshopware6

Shopware 6.5 Update - The script tried to call a method on an incomplete object


I updated from Shopware 6.4 to 6.5 and now I have the following error occuring in the Storefront:

The script tried to call a method on an incomplete object. Please ensure that the class definition "Shopware\Core\Checkout\Cart\Rule\LineItemsInCartRule" of the object you are trying to operate on was loaded before unserialize() gets called or provide an autoloader to load the class definition

Full Stacktrace:

Error:
The script tried to call a method on an incomplete object. Please ensure that the class definition "Shopware\Core\Checkout\Cart\Rule\LineItemsInCartRule" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide an autoloader to load the class definition

at vendor/shopware/core/Framework/Rule/Container/AndRule.php:17
at Shopware\Core\Framework\Rule\Container\AndRule->match(object(CartRuleScope))
(vendor/shopware/core/Framework/Rule/Container/OrRule.php:16)
at Shopware\Core\Framework\Rule\Container\OrRule->match(object(CartRuleScope))
(vendor/shopware/core/Framework/Rule/Container/AndRule.php:17)
at Shopware\Core\Framework\Rule\Container\AndRule->match(object(CartRuleScope))
(vendor/shopware/core/Content/Rule/RuleCollection.php:34)
at Shopware\Core\Content\Rule\RuleCollection->Shopware\Core\Content\Rule\{closure}(object(RuleEntity))
at array_filter(array('0e41705afdef4293afa3d29eea059f47' => object(RuleEntity), '29fcc9badb1c4b70896137f1e6c474ee' => object(RuleEntity), 'f5069dce24cf4fd597c31436e1ed99ad' => object(RuleEntity), '34b33edb7ece4c69ba38a77a715218ce' => object(RuleEntity), '53b052449d3b4e249cf977d2ff768b4e' => object(RuleEntity), '7e5e5581fc0d46a4aa6aa0692a6f31e9' => object(RuleEntity), '9f9937aac56e4d528fccda9e9cd4200a' => object(RuleEntity), 'a9a646b59c644603acf898d25f3e78d4' => object(RuleEntity), 'cb0403d5aa5a49238953865f8548de13' => object(RuleEntity), 'd64734d4243a49ea8c3383e87d676214' => object(RuleEntity), 'dc87a8ae3cf4413aa0d78b67e22fe9dd' => object(RuleEntity), '441d5b826ef240ca9a27f15a59213591' => object(RuleEntity), '52e4415f8bcd48b19af03697ae03446a' => object(RuleEntity), '80c0371f14ef4cefaf2c3a5efb70ee8b' => object(RuleEntity), 'cca765a1ffcb427d9c67892810627090' => object(RuleEntity), 'dc39a1d7226a4906809f011271fac04f' => object(RuleEntity), '04b028c5f46e42f4842dc4b11a44918b' => object(RuleEntity), '0a58fb69397a49dda94c455c7e473700' => object(RuleEntity), '0e530ad47ffb46bf9e89ee6194eba5ab' => object(RuleEntity), '11f89f9c4424438f896b9579c53a14ff' => object(RuleEntity), '173c6b830d404ddd98bd8212d69002c5' => object(RuleEntity), '21d7302ea4494b6f86e146829dc3fc1b' => object(RuleEntity), '3e3f5697a58f482699d276d73d938689' => object(RuleEntity), '4c2ba893172c4e3884cac2c3c121a6b5' => object(RuleEntity), '4ea8cc225e4041c196592e26b56fc619' => object(RuleEntity), '522d83314276496f898b25e72bc38638' => object(RuleEntity), '5769c6edda8b4966b1dcbe9ac6a80371' => object(RuleEntity), '57d078fdbac44a7d93d75a6730c2cd93' => object(RuleEntity), '5ca4f44412fa4c0481ddbfb81f65a06e' => object(RuleEntity), '5ff22fc57c0943a79449d24faaeed3d4' => object(RuleEntity), '6972eeb228724e43982442bcc11ef553' => object(RuleEntity), '719f8f0b2a294acca823bf0a2b9c3a34' => object(RuleEntity), '7538ac664c13459fbd4a2c135406b7f2' => object(RuleEntity), '7d0c20c73e284a2f911465c262adaf82' => object(RuleEntity), '812e200f4fb9484a9ab06a3958239085' => object(RuleEntity), '8e62444add90491296d8493ab63edcd0' => object(RuleEntity), '90321da521214b30adf31d14c93767d9' => object(RuleEntity), '9965781b35af44e98a435325d52fbb0f' => object(RuleEntity), '9d0122b90cfd44a09d7f9a3d87715824' => object(RuleEntity), 'a46f0a89a8fe41dd97e8a9cef7338b49' => object(RuleEntity), 'a4f05f689bba4ac79cab2bce4a28507c' => object(RuleEntity), 'a9e5dd379fba4ec29958f9358398541c' => object(RuleEntity), 'b0df43d5bf1b4d17b10cefe162abd095' => object(RuleEntity), 'b35896d09807482588e654d79c1a82d7' => object(RuleEntity), 'b41c84e2234540d3a1deac40b1c7e7a4' => object(RuleEntity), 'b93a8f01ad564618b63541c3bb6e68fc' => object(RuleEntity), 'cd120ce7c39a40cebf9407db09168a7f' => object(RuleEntity), 'cdbf4cd0bc644a44860359461f08225a' => object(RuleEntity), 'ce5b4484851247f591592b383d94bb74' => object(RuleEntity), 'd2a31d98262845649f520b2a57824005' => object(RuleEntity), 'dafc1876c22345ac8c6acd6b4c5036e6' => object(RuleEntity), 'e0d6abb01fa0439d9225d10751f9f02f' => object(RuleEntity), 'e5fa85232aca43a4a222a69949411a67' => object(RuleEntity), 'ea7ac8f7e75c4897ab2c8ffb080efcf9' => object(RuleEntity), 'fd1e29393e7b4864b7deba55ce9f43ff' => object(RuleEntity), 'feedaab617434f888eac2ed4fef1b3ee' => object(RuleEntity), '5969a8df1473448abc871fe8b881cd38' => object(RuleEntity)), object(Closure))
(vendor/shopware/core/Framework/Struct/Collection.php:149)
at Shopware\Core\Framework\Struct\Collection->filter(object(Closure))
(vendor/shopware/core/Content/Rule/RuleCollection.php:35)
at Shopware\Core\Content\Rule\RuleCollection->filterMatchingRules(object(Cart), object(SalesChannelContext))
(vendor/shopware/core/Checkout/Cart/CartRuleLoader.php:118)
at Shopware\Core\Checkout\Cart\CartRuleLoader->Shopware\Core\Checkout\Cart\{closure}()
(vendor/shopware/core/Profiling/Profiler.php:61)
at Shopware\Core\Profiling\Profiler::trace('cart-rule-loader', object(Closure))
(vendor/shopware/core/Checkout/Cart/CartRuleLoader.php:159)
at Shopware\Core\Checkout\Cart\CartRuleLoader->load(object(SalesChannelContext), object(Cart), object(CartBehavior), true)
(vendor/shopware/core/Checkout/Cart/CartRuleLoader.php:64)
at Shopware\Core\Checkout\Cart\CartRuleLoader->loadByToken(object(SalesChannelContext), 'wxWvsUJzAfxVlVUi5nUE5eMssC7JuIdm')
(vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextService.php:91)
at Shopware\Core\System\SalesChannel\Context\SalesChannelContextService->Shopware\Core\System\SalesChannel\Context\{closure}()
(vendor/shopware/core/Profiling/Profiler.php:61)
at Shopware\Core\Profiling\Profiler::trace('sales-channel-context', object(Closure))
(vendor/shopware/core/System/SalesChannel/Context/SalesChannelContextService.php:96)
at Shopware\Core\System\SalesChannel\Context\SalesChannelContextService->get(object(SalesChannelContextServiceParameters))
(vendor/shopware/core/Framework/Routing/SalesChannelRequestContextResolver.php:63)
at Shopware\Core\Framework\Routing\SalesChannelRequestContextResolver->resolve(object(Request))
(vendor/shopware/core/Framework/Routing/ContextResolverListener.php:34)
at Shopware\Core\Framework\Routing\ContextResolverListener->resolveContext(object(ControllerEvent), 'kernel.controller', object(TraceableEventDispatcher))
(vendor/symfony/event-dispatcher/Debug/WrappedListener.php:116)
at Symfony\Component\EventDispatcher\Debug\WrappedListener->__invoke(object(ControllerEvent), 'kernel.controller', object(TraceableEventDispatcher))
(vendor/symfony/event-dispatcher/EventDispatcher.php:220)
at Symfony\Component\EventDispatcher\EventDispatcher->callListeners(array(object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener), object(WrappedListener)), 'kernel.controller', object(ControllerEvent))
(vendor/symfony/event-dispatcher/EventDispatcher.php:56)
at Symfony\Component\EventDispatcher\EventDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/shopware/core/Content/Flow/Dispatching/FlowDispatcher.php:47)
at Shopware\Core\Content\Flow\Dispatching\FlowDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/shopware/core/Framework/Webhook/WebhookDispatcher.php:67)
at Shopware\Core\Framework\Webhook\WebhookDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/shopware/core/Framework/Event/NestedEventDispatcher.php:31)
at Shopware\Core\Framework\Event\NestedEventDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/symfony/event-dispatcher/Debug/TraceableEventDispatcher.php:139)
at Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher->dispatch(object(ControllerEvent), 'kernel.controller')
(vendor/symfony/http-kernel/HttpKernel.php:154)
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), 1)
(vendor/symfony/http-kernel/HttpKernel.php:74)
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/Kernel.php:197)
at Symfony\Component\HttpKernel\Kernel->handle(object(Request), 1, true)
(vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php:86)
at Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle(object(Kernel), object(Request), 1, true)
(vendor/symfony/http-kernel/HttpCache/HttpCache.php:473)
at Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(object(Request), true)
(vendor/symfony/http-kernel/HttpCache/HttpCache.php:448)
at Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(object(Request), true)
(vendor/symfony/http-kernel/HttpCache/HttpCache.php:346)
at Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(object(Request), true)
(vendor/symfony/http-kernel/HttpCache/HttpCache.php:221)
at Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(object(Request), 1, true)
(vendor/shopware/core/HttpKernel.php:143)
at Shopware\Core\HttpKernel->doHandle(object(Request), 1, true)
(vendor/shopware/core/HttpKernel.php:65)
at Shopware\Core\HttpKernel->handle(object(Request), 1, true)
(public/index.php:71)
at Symfony\Component\HttpKernel\HttpKernelInterface@anonymous/home/mws/Dokumente/projekte/academy.rotkaeppchen-mumm.de/public/index.php:61$0->handle(object(Request))
(vendor/symfony/runtime/Runner/Symfony/HttpKernelRunner.php:35)
at Symfony\Component\Runtime\Runner\Symfony\HttpKernelRunner->run()
(vendor/autoload_runtime.php:29)
at require_once('/home/user/projects/shopware/vendor/autoload_runtime.php')
(public/index.php:14)

How does that occur and how do I fix that?


Solution

  • The previously deprecated class LineItemsInCartRule was removed with the 6.5 major release.

    A database migration should've replaced all usages in rules by the suitable alternative. However it seems that the changed rules have not been indexed properly afterwards in your instance.

    To rectify this you can execute a CLI command to start the indexing manually:

    bin/console dal:refresh:index --only=rule.indexer
    

    This process can also be started in the administration, but it is recommended to do so in the shell.