i am upgrading magento 2.4.6-p3 to 2.4.7-p2 php version 8.2 on frontend iam facing:
1 exception(s): Exception #0 (ReflectionException): Class "Auth" does not exist
Exception #0 (ReflectionException): Class "Auth" does not exist
#1 Magento\Framework\Code\Reader\ClassReader->getConstructor() called at [vendor/magento/framework/ObjectManager/Definition/Runtime.php:50] #2 Magento\Framework\ObjectManager\Definition\Runtime->getParameters() called at [vendor/magento/framework/ObjectManager/Factory/Compiled.php:100] #3 Magento\Framework\ObjectManager\Factory\Compiled->create() called at [vendor/magento/framework/ObjectManager/ObjectManager.php:73] #4 Magento\Framework\ObjectManager\ObjectManager->get() called at [vendor/magento/module-customer/view/frontend/templates/js/customer-data.phtml:14] #5 include() called at [vendor/magento/framework/View/TemplateEngine/Php.php:67] #6 Magento\Framework\View\TemplateEngine\Php->render() called at [vendor/magento/framework/Interception/Interceptor.php:58] #7 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #8 Magento\Framework\View\TemplateEngine\Php\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #9 Magento\Framework\View\TemplateEngine\Php\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/TemplateEngine/Php/Interceptor.php:23] #10 Magento\Framework\View\TemplateEngine\Php\Interceptor->render() called at [vendor/magento/framework/View/Element/Template.php:263] #11 Magento\Framework\View\Element\Template->fetchView() called at [vendor/magento/framework/View/Element/Template.php:293] #12 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1128] #13 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1132] #14 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:676] #15 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/framework/View/Layout.php:578] #16 Magento\Framework\View\Layout->_renderBlock() called at [vendor/magento/framework/View/Layout.php:555] #17 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #18 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:606] #19 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557] #20 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #21 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:606] #22 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557] #23 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #24 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:606] #25 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557] #26 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #27 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:606] #28 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557] #29 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #30 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:606] #31 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557] #32 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #33 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:606] #34 Magento\Framework\View\Layout->_renderContainer() called at [vendor/magento/framework/View/Layout.php:557] #35 Magento\Framework\View\Layout->renderNonCachedElement() called at [vendor/magento/framework/View/Layout.php:510] #36 Magento\Framework\View\Layout->renderElement() called at [vendor/magento/framework/View/Layout.php:975] #37 Magento\Framework\View\Layout->getOutput() called at [vendor/magento/framework/Interception/Interceptor.php:58] #38 Magento\Framework\View\Layout\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #39 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #40 Magento\Framework\View\Layout\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:41] #41 Magento\Framework\View\Layout\Interceptor->getOutput() called at [vendor/magento/framework/View/Result/Page.php:260] #42 Magento\Framework\View\Result\Page->render() called at [vendor/magento/framework/View/Result/Layout.php:171] #43 Magento\Framework\View\Result\Layout->renderResult() called at [vendor/magento/framework/Interception/Interceptor.php:58] #44 Magento\Framework\View\Result\Page\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #45 Magento\Framework\View\Result\Page\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #46 Magento\Framework\View\Result\Page\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/View/Result/Page/Interceptor.php:32] #47 Magento\Framework\View\Result\Page\Interceptor->renderResult() called at [vendor/magento/framework/App/Http.php:120] #48 Magento\Framework\App\Http->launch() called at [vendor/magento/framework/Interception/Interceptor.php:58] #49 Magento\Framework\App\Http\Interceptor->___callParent() called at [vendor/magento/framework/Interception/Interceptor.php:138] #50 Magento\Framework\App\Http\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/module-application-performance-monitor/Plugin/ApplicationPerformanceMonitor.php:38] #51 Magento\ApplicationPerformanceMonitor\Plugin\ApplicationPerformanceMonitor->aroundLaunch() called at [vendor/magento/framework/Interception/Interceptor.php:135] #52 Magento\Framework\App\Http\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153] #53 Magento\Framework\App\Http\Interceptor->___callPlugins() called at [generated/code/Magento/Framework/App/Http/Interceptor.php:23] #54 Magento\Framework\App\Http\Interceptor->launch() called at [vendor/magento/framework/App/Bootstrap.php:264] #55 Magento\Framework\App\Bootstrap->run() called at [pub/index.php:30]
i have run all commands bin/magento s:up; bin/magento s:d:c; bin/magento s:s:d -f; bin/magento c:f cammands are excuting properly
It appears to be a bug in magento.
In particular, \Magento\Customer\ViewModel\Customer\Auth
class is missing from a block parameter declaration in default.xml in your theme. However, the error is thrown due to the classname being called instead of FQN in vendor/magento/module-customer/view/frontend/templates/js/customer-data.phtml on line 14
$auth = $block->getAuth() ?? ObjectManager::getInstance()->get(Auth::class);
The solution is to add the missing parameter to the block with name "customer.customer.data" making it as following:
<block name="customer.customer.data" class="Magento\Customer\Block\CustomerData"
template="Magento_Customer::js/customer-data.phtml">
<arguments>
<argument name="auth" xsi:type="object">Magento\Customer\ViewModel\Customer\Auth</argument>
<argument name="json_serializer" xsi:type="object">Magento\Customer\ViewModel\Customer\JsonSerializer</argument>
<argument name="cookie_settings" xsi:type="object">Magento\Customer\ViewModel\CookieSettings</argument>
</arguments>
</block>