'Magento 2.4.3 Upgrade getting "Area code is not set" in State.php:153
I've been tasked with upgrading my project from 2.3.7-p1 to 2.4.3-p1 and I am running into this problem when I run bin/magento setup:upgrade -vvv
.
I've tried checking all of the custom modules for the area code being set in the constructor and there is nothing there.
I've tried temporarily setting the area code to GLOBAL which works the first time around but then when I run another custom command to generate categories, I get the error message Area code is already set
.
I don't know where to look next.. I've tried debugging through var_dumps all along the stack trace, but it just shows my theme is empty, but I don't know where to look to fix that.
Below is my stack trace, if anyone has any thoughts, please let me know so I can try this asap!
at /usr/local/projects/myproject/vendor/magento/framework/App/State.php:153
Magento\Framework\App\State->getAreaCode() at /usr/local/projects/myproject/vendor/magento/module-theme/Model/Theme.php:272
Magento\Theme\Model\Theme->getArea() at /usr/local/projects/myproject/vendor/magento/framework/View/File/Collector/Base.php:68
Magento\Framework\View\File\Collector\Base->getFiles() at /usr/local/projects/myproject/vendor/magento/framework/View/File/Collector/Decorator/ModuleOutput.php:59
Magento\Framework\View\File\Collector\Decorator\ModuleOutput->getFiles() at /usr/local/projects/myproject/vendor/magento/framework/View/File/Collector/Decorator/ModuleDependency.php:63
Magento\Framework\View\File\Collector\Decorator\ModuleDependency->getFiles() at /usr/local/projects/myproject/vendor/magento/framework/View/Layout/File/Collector/Aggregated.php:88
Magento\Framework\View\Layout\File\Collector\Aggregated->getFiles() at /usr/local/projects/myproject/vendor/magento/framework/View/Element/UiComponent/Config/FileCollector/AggregatedFileCollector.php:76
Magento\Framework\View\Element\UiComponent\Config\FileCollector\AggregatedFileCollector->collectFiles() at /usr/local/projects/myproject/vendor/magento/module-ui/Config/Reader/FileResolver.php:43
Magento\Ui\Config\Reader\FileResolver->get() at /usr/local/projects/myproject/vendor/magento/module-ui/Config/Reader/Definition.php:28
Magento\Ui\Config\Reader\Definition->read() at /usr/local/projects/myproject/vendor/magento/module-ui/Config/Reader/Definition/Data.php:89
Magento\Ui\Config\Reader\Definition\Data->initData() at /usr/local/projects/myproject/vendor/magento/module-ui/Config/Reader/Definition/Data.php:75
Magento\Ui\Config\Reader\Definition\Data->__construct() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:121
Magento\Framework\ObjectManager\Factory\AbstractFactory->createObject() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:66
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:206
Magento\Framework\ObjectManager\Factory\AbstractFactory->parseArray() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:182
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:170
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:70
Magento\Framework\ObjectManager\ObjectManager->get() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:206
Magento\Framework\ObjectManager\Factory\AbstractFactory->parseArray() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:182
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:276
Magento\Framework\ObjectManager\Factory\AbstractFactory->getResolvedArgument() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php:239
Magento\Framework\ObjectManager\Factory\AbstractFactory->resolveArgumentsInRuntime() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:34
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->_resolveArguments() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/Factory/Dynamic/Developer.php:59
Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create() at /usr/local/projects/myproject/vendor/magento/framework/ObjectManager/ObjectManager.php:56
Magento\Framework\ObjectManager\ObjectManager->create() at /usr/local/projects/myproject/vendor/magento/framework/Console/Cli.php:153
Magento\Framework\Console\Cli->getApplicationCommands() at /usr/local/projects/myproject/vendor/magento/framework/Console/Cli.php:134
Magento\Framework\Console\Cli->getDefaultCommands() at /usr/local/projects/myproject/vendor/symfony/console/Application.php:1274
Symfony\Component\Console\Application->init() at /usr/local/projects/myproject/vendor/symfony/console/Application.php:629
Symfony\Component\Console\Application->find() at /usr/local/projects/myproject/vendor/symfony/console/Application.php:237
Symfony\Component\Console\Application->doRun() at /usr/local/projects/myproject/vendor/magento/framework/Console/Cli.php:115
Magento\Framework\Console\Cli->doRun() at /usr/local/projects/myproject/vendor/symfony/console/Application.php:149
Symfony\Component\Console\Application->run() at /usr/local/projects/myproject/bin/magento:23
Solution 1:[1]
I lived through the same exact situation and I was able to resolve it.
The problem comes from the constructor in this file: vendor/magento/module-payment/Helper/Data.php
public function __construct(
\Magento\Framework\App\Helper\Context $context,
LayoutFactory $layoutFactory,
\Magento\Payment\Model\Method\Factory $paymentMethodFactory,
\Magento\Store\Model\App\Emulation $appEmulation,
\Magento\Payment\Model\Config $paymentConfig,
\Magento\Framework\App\Config\Initial $initialConfig
) {
parent::__construct($context);
$this->_layout = $layoutFactory->create();
$this->_methodFactory = $paymentMethodFactory;
$this->_appEmulation = $appEmulation;
$this->_paymentConfig = $paymentConfig;
$this->_initialConfig = $initialConfig;
}
The bug is caused by the $layoutFactory running the "create" method within the constructor.
At line 184, you will get the only usage of the "_layout" attribute.
public function getInfoBlock(InfoInterface $info, LayoutInterface $layout = null)
{
$layout = $layout ?: $this->_layout;
$blockType = $info->getMethodInstance()->getInfoBlockType();
$block = $layout->createBlock($blockType);
$block->setInfo($info);
return $block;
}
What you need to do is move the object creation out of the constructor and within the getInfoBlock method. So it looks like this after:
public function __construct(
\Magento\Framework\App\Helper\Context $context,
LayoutFactory $layoutFactory,
\Magento\Payment\Model\Method\Factory $paymentMethodFactory,
\Magento\Store\Model\App\Emulation $appEmulation,
\Magento\Payment\Model\Config $paymentConfig,
\Magento\Framework\App\Config\Initial $initialConfig
) {
parent::__construct($context);
$this->_layout = $layoutFactory;
$this->_methodFactory = $paymentMethodFactory;
$this->_appEmulation = $appEmulation;
$this->_paymentConfig = $paymentConfig;
$this->_initialConfig = $initialConfig;
}
public function getInfoBlock(InfoInterface $info, LayoutInterface $layout = null)
{
$layout = $layout ?: $this->_layout->create();
$blockType = $info->getMethodInstance()->getInfoBlockType();
$block = $layout->createBlock($blockType);
$block->setInfo($info);
return $block;
}
I found a similar fix for the same issue within the Magento 2 codebase, here is the commit: https://github.com/magento/magento2/commit/d0f220111548123a7a77102cc516b1043d54d905
That fix is available in Magento 2.4.4, so if you are able to update to that version, it should fix your problem. If you are still stuck on 2.4.3 like me, you can just apply the fix manually like I described.
Have a nice day!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | B. Auclair |