Magento2: Cannot edit order addresses from order edit form because of Vertex module

Created on 9 Nov 2020  ·  12Comments  ·  Source: magento/magento2

Preconditions (*)

  1. Magento 2.4.1 upgraded from previous versions e.g. 2.3
  2. An order created in the 2.3 instance.

I will try and test whether it occurs on clean 2.4.1 installation too.

Steps to reproduce (*)

  1. Create an order in the 2.3 instance,
  2. Upgrade to 2.4.1
  3. Go to Sales -> Orders -> Edit the order
  4. Go to addresses
  5. Click on edit of either billing or shipping address

Expected result (*)

  1. The form opens correctly

Actual result (*)

An error is thrown

1 exception(s):
Exception #0 (Magento\Framework\Exception\RuntimeException): Type Error occurred when creating object: Vertex\AddressValidation\Block\Adminhtml\CleanseAddressButton, Argument 4 passed to Vertex\AddressValidation\Block\Adminhtml\CleanseAddressButton::__construct() must be of the type string, null given, called in /var/www/vhosts/dev7.yourstaging.eu/private/magento/2x/default/httpdocs/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121


Exception Trace

1 exception(s):
Exception #0 (Magento\Framework\Exception\RuntimeException): Type Error occurred when creating object: Vertex\AddressValidation\Block\Adminhtml\CleanseAddressButton, Argument 4 passed to Vertex\AddressValidation\Block\Adminhtml\CleanseAddressButton::__construct() must be of the type string, null given, called in /var/www/vhosts/dev7.yourstaging.eu/private/magento/2x/default/httpdocs/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121

Exception #0 (Magento\Framework\Exception\RuntimeException): Type Error occurred when creating object: Vertex\AddressValidation\Block\Adminhtml\CleanseAddressButton, Argument 4 passed to Vertex\AddressValidation\Block\Adminhtml\CleanseAddressButton::__construct() must be of the type string, null given, called in /var/www/vhosts/dev7.yourstaging.eu/private/magento/2x/default/httpdocs/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 121
<pre>#1 Magento\Framework\ObjectManager\Factory\Dynamic\Developer->create('Vertex\AddressVa...', array('prefix' => NULL)) called at [vendor/magento/framework/ObjectManager/ObjectManager.php:56]
#2 Magento\Framework\ObjectManager\ObjectManager->create('Vertex\AddressVa...', array('prefix' => NULL)) called at [vendor/magento/framework/View/Element/BlockFactory.php:46]
#3 Magento\Framework\View\Element\BlockFactory->createBlock('Vertex\AddressVa...', array('prefix' => NULL)) called at [vendor/magento/framework/View/Layout/Generator/Block.php:272]
#4 Magento\Framework\View\Layout\Generator\Block->getBlockInstance('Vertex\AddressVa...', array('prefix' => NULL)) called at [vendor/magento/framework/View/Layout/Generator/Block.php:252]
#5 Magento\Framework\View\Layout\Generator\Block->createBlock('Vertex\AddressVa...', 'adminhtml\cleans...', array('prefix' => NULL)) called at [vendor/magento/framework/View/Layout.php:785]
#6 Magento\Framework\View\Layout->_createBlock('Vertex\AddressVa...', 'adminhtml\cleans...', array('prefix' => NULL)) called at [vendor/magento/framework/View/Layout.php:768]
#7 Magento\Framework\View\Layout->createBlock('Vertex\AddressVa...', 'adminhtml\cleans...', array('prefix' => NULL)) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:248]
#8 Magento\Framework\View\Layout\Interceptor->createBlock('Vertex\AddressVa...', '', array('prefix' => NULL)) called at [vendor/vertex/module-address-validation/Plugin/Adminhtml/AddBlockToOrderCreateForm.php:43]
#9 Vertex\AddressValidation\Plugin\Adminhtml\AddBlockToOrderCreateForm->afterGetForm(&Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor#000000002174b5090000000079d932e6#, &Magento\Framework\Data\Form#000000002174b7640000000079d932e6#) called at [vendor/magento/framework/Interception/Interceptor.php:146]
#10 Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor->Magento\Framework\Interception\{closure}() called at [vendor/magento/framework/Interception/Interceptor.php:153]
#11 Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor->___callPlugins('getForm', array(), array(array('vertex_addressva...'))) called at [generated/code/Magento/Sales/Block/Adminhtml/Order/Address/Form/Interceptor.php:86]
#12 Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor->getForm() called at [vendor/magento/module-sales/view/adminhtml/templates/order/address/form.phtml:25]
#13 include('/var/www/vhosts/...') called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#14 Magento\Framework\View\TemplateEngine\Php->render(&Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor#000000002174b5090000000079d932e6#, '/var/www/vhosts/...', array('csp' => &Magento\Csp\Api\InlineUtilInterface\Proxy#000000002174b52c0000000079d932e6#, 'secureRenderer' => &Magento\Framework\View\Helper\SecureHtmlRenderer\Proxy#000000002174b5460000000079d932e6#, 'escaper' => &Magento\Framework\Escaper#000000002174bb790000000079d932e6#)) called at [vendor/magento/framework/View/Element/Template.php:273]
#15 Magento\Framework\View\Element\Template->fetchView('/var/www/vhosts/...') called at [generated/code/Magento/Sales/Block/Adminhtml/Order/Address/Form/Interceptor.php:311]
#16 Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor->fetchView('/var/www/vhosts/...') called at [vendor/magento/framework/View/Element/Template.php:303]
#17 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/magento/module-backend/Block/Template.php:141]
#18 Magento\Backend\Block\Template->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#19 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#20 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#21 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [generated/code/Magento/Sales/Block/Adminhtml/Order/Address/Form/Interceptor.php:536]
#22 Magento\Sales\Block\Adminhtml\Order\Address\Form\Interceptor->toHtml() called at [vendor/magento/framework/View/Layout.php:566]
#23 Magento\Framework\View\Layout->_renderBlock('sales_order_addr...') called at [vendor/magento/framework/View/Layout.php:542]
#24 Magento\Framework\View\Layout->renderNonCachedElement('sales_order_addr...') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#25 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('sales_order_addr...') called at [vendor/magento/framework/View/Layout.php:497]
#26 Magento\Framework\View\Layout->renderElement('sales_order_addr...', true) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#27 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('sales_order_addr...', true)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#28 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('sales_order_addr...', true) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#29 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b7600000000079d932e6#, 'sales_order_addr...', true) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#30 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('sales_order_addr...', true) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#31 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('sales_order_addr...', true), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#32 Magento\Framework\View\Layout\Interceptor->renderElement('sales_order_addr...', true) called at [vendor/magento/framework/View/Element/AbstractBlock.php:522]
#33 Magento\Framework\View\Element\AbstractBlock->getChildHtml('form') called at [vendor/magento/module-backend/Block/Widget/Form/Container.php:220]
#34 Magento\Backend\Block\Widget\Form\Container->getFormHtml() called at [vendor/magento/module-backend/view/adminhtml/templates/widget/form/container.phtml:25]
#35 include('/var/www/vhosts/...') called at [vendor/magento/framework/View/TemplateEngine/Php.php:71]
#36 Magento\Framework\View\TemplateEngine\Php->render(&Magento\Sales\Block\Adminhtml\Order\Address#000000002174beab0000000079d932e6#, '/var/www/vhosts/...', array('csp' => &Magento\Csp\Api\InlineUtilInterface\Proxy#000000002174b52c0000000079d932e6#, 'secureRenderer' => &Magento\Framework\View\Helper\SecureHtmlRenderer\Proxy#000000002174b5460000000079d932e6#, 'escaper' => &Magento\Framework\Escaper#000000002174bb790000000079d932e6#)) called at [vendor/magento/framework/View/Element/Template.php:273]
#37 Magento\Framework\View\Element\Template->fetchView('/var/www/vhosts/...') called at [vendor/magento/framework/View/Element/Template.php:303]
#38 Magento\Framework\View\Element\Template->_toHtml() called at [vendor/magento/module-backend/Block/Template.php:141]
#39 Magento\Backend\Block\Template->_toHtml() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1111]
#40 Magento\Framework\View\Element\AbstractBlock->Magento\Framework\View\Element\{closure}() called at [vendor/magento/framework/View/Element/AbstractBlock.php:1115]
#41 Magento\Framework\View\Element\AbstractBlock->_loadCache() called at [vendor/magento/framework/View/Element/AbstractBlock.php:675]
#42 Magento\Framework\View\Element\AbstractBlock->toHtml() called at [vendor/magento/framework/View/Layout.php:566]
#43 Magento\Framework\View\Layout->_renderBlock('sales_order_addr...') called at [vendor/magento/framework/View/Layout.php:542]
#44 Magento\Framework\View\Layout->renderNonCachedElement('sales_order_addr...') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#45 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('sales_order_addr...') called at [vendor/magento/framework/View/Layout.php:497]
#46 Magento\Framework\View\Layout->renderElement('sales_order_addr...', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#47 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('sales_order_addr...', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#48 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('sales_order_addr...', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#49 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b77a0000000079d932e6#, 'sales_order_addr...', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#50 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('sales_order_addr...', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#51 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('sales_order_addr...', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#52 Magento\Framework\View\Layout\Interceptor->renderElement('sales_order_addr...', false) called at [vendor/magento/framework/View/Layout.php:594]
#53 Magento\Framework\View\Layout->_renderContainer('content', false) called at [vendor/magento/framework/View/Layout.php:544]
#54 Magento\Framework\View\Layout->renderNonCachedElement('content') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#55 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('content') called at [vendor/magento/framework/View/Layout.php:497]
#56 Magento\Framework\View\Layout->renderElement('content', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#57 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('content', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#58 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('content', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#59 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b77c0000000079d932e6#, 'content', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#60 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('content', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#61 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('content', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#62 Magento\Framework\View\Layout\Interceptor->renderElement('content', false) called at [vendor/magento/framework/View/Layout.php:594]
#63 Magento\Framework\View\Layout->_renderContainer('main.col', false) called at [vendor/magento/framework/View/Layout.php:544]
#64 Magento\Framework\View\Layout->renderNonCachedElement('main.col') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#65 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('main.col') called at [vendor/magento/framework/View/Layout.php:497]
#66 Magento\Framework\View\Layout->renderElement('main.col', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#67 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('main.col', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#68 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('main.col', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#69 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b4650000000079d932e6#, 'main.col', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#70 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('main.col', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#71 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('main.col', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#72 Magento\Framework\View\Layout\Interceptor->renderElement('main.col', false) called at [vendor/magento/framework/View/Layout.php:594]
#73 Magento\Framework\View\Layout->_renderContainer('admin.scope.col....', false) called at [vendor/magento/framework/View/Layout.php:544]
#74 Magento\Framework\View\Layout->renderNonCachedElement('admin.scope.col....') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#75 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('admin.scope.col....') called at [vendor/magento/framework/View/Layout.php:497]
#76 Magento\Framework\View\Layout->renderElement('admin.scope.col....', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#77 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('admin.scope.col....', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#78 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('admin.scope.col....', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#79 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b74c0000000079d932e6#, 'admin.scope.col....', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#80 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('admin.scope.col....', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#81 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('admin.scope.col....', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#82 Magento\Framework\View\Layout\Interceptor->renderElement('admin.scope.col....', false) called at [vendor/magento/framework/View/Layout.php:594]
#83 Magento\Framework\View\Layout->_renderContainer('page.main.contai...', false) called at [vendor/magento/framework/View/Layout.php:544]
#84 Magento\Framework\View\Layout->renderNonCachedElement('page.main.contai...') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#85 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('page.main.contai...') called at [vendor/magento/framework/View/Layout.php:497]
#86 Magento\Framework\View\Layout->renderElement('page.main.contai...', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#87 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('page.main.contai...', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#88 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('page.main.contai...', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#89 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b7b00000000079d932e6#, 'page.main.contai...', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#90 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('page.main.contai...', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#91 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('page.main.contai...', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#92 Magento\Framework\View\Layout\Interceptor->renderElement('page.main.contai...', false) called at [vendor/magento/framework/View/Layout.php:594]
#93 Magento\Framework\View\Layout->_renderContainer('page.content', false) called at [vendor/magento/framework/View/Layout.php:544]
#94 Magento\Framework\View\Layout->renderNonCachedElement('page.content') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#95 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('page.content') called at [vendor/magento/framework/View/Layout.php:497]
#96 Magento\Framework\View\Layout->renderElement('page.content', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#97 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('page.content', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#98 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('page.content', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#99 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b47e0000000079d932e6#, 'page.content', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#100 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('page.content', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#101 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('page.content', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#102 Magento\Framework\View\Layout\Interceptor->renderElement('page.content', false) called at [vendor/magento/framework/View/Layout.php:594]
#103 Magento\Framework\View\Layout->_renderContainer('page.wrapper', false) called at [vendor/magento/framework/View/Layout.php:544]
#104 Magento\Framework\View\Layout->renderNonCachedElement('page.wrapper') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#105 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('page.wrapper') called at [vendor/magento/framework/View/Layout.php:497]
#106 Magento\Framework\View\Layout->renderElement('page.wrapper', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#107 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('page.wrapper', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#108 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('page.wrapper', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#109 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b5740000000079d932e6#, 'page.wrapper', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#110 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('page.wrapper', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#111 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('page.wrapper', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#112 Magento\Framework\View\Layout\Interceptor->renderElement('page.wrapper', false) called at [vendor/magento/framework/View/Layout.php:594]
#113 Magento\Framework\View\Layout->_renderContainer('backend.page', false) called at [vendor/magento/framework/View/Layout.php:544]
#114 Magento\Framework\View\Layout->renderNonCachedElement('backend.page') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#115 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('backend.page') called at [vendor/magento/framework/View/Layout.php:497]
#116 Magento\Framework\View\Layout->renderElement('backend.page', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#117 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('backend.page', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#118 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('backend.page', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#119 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b5480000000079d932e6#, 'backend.page', false) called at [vendor/magento/framework/Interception/Interceptor.php:135]
#120 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('backend.page', false) called at [vendor/magento/framework/Interception/Interceptor.php:153]
#121 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('backend.page', false), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#122 Magento\Framework\View\Layout\Interceptor->renderElement('backend.page', false) called at [vendor/magento/framework/View/Layout.php:594]
#123 Magento\Framework\View\Layout->_renderContainer('root', false) called at [vendor/magento/framework/View/Layout.php:544]
#124 Magento\Framework\View\Layout->renderNonCachedElement('root') called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:149]
#125 Magento\Framework\View\Layout\Interceptor->renderNonCachedElement('root') called at [vendor/magento/framework/View/Layout.php:497]
#126 Magento\Framework\View\Layout->renderElement('root', false) called at [vendor/magento/framework/Interception/Interceptor.php:58]
#127 Magento\Framework\View\Layout\Interceptor->___callParent('renderElement', array('root', false)) called at [vendor/magento/framework/Interception/Interceptor.php:138]
#128 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('root', false) called at [vendor/honl/magento2-templatehints/Plugin/View/LayoutPlugin.php:70]
#129 Ho\Templatehints\Plugin\View\LayoutPlugin->aroundRenderElement(&Magento\Framework\View\Layout\Interceptor#000000002174ba3f0000000079d932e6#, &Closure#000000002174b54d0000000079d932e6#, 'root') called at [vendor/magento/framework/Interception/Interceptor.php:135]
#130 Magento\Framework\View\Layout\Interceptor->Magento\Framework\Interception\{closure}('root') called at [vendor/magento/framework/Interception/Interceptor.php:153]
#131 Magento\Framework\View\Layout\Interceptor->___callPlugins('renderElement', array('root'), NULL) called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:140]
#132 Magento\Framework\View\Layout\Interceptor->renderElement('root') called at [vendor/magento/framework/View/Layout.php:963]
#133 Magento\Framework\View\Layout->getOutput() called at [generated/code/Magento/Framework/View/Layout/Interceptor.php:347]
#134 Magento\Framework\View\Layout\Interceptor->getOutput() called at [vendor/magento/framework/View/Result/Page.php:258]
#135 Magento\Framework\View\Result\Page->render(&Magento\Framework\App\Response\Http\Interceptor#000000002174b93b0000000079d932e6#) called at [vendor/magento/framework/View/Result/Layout.php:171]
#136 Magento\Framework\View\Result\Layout->renderResult(&Magento\Framework\App\Response\Http\Interceptor#000000002174b93b0000000079d932e6#) called at [generated/code/Magento/Backend/Model/View/Result/Page/Interceptor.php:140]
#137 Magento\Backend\Model\View\Result\Page\Interceptor->renderResult(&Magento\Framework\App\Response\Http\Interceptor#000000002174b93b0000000079d932e6#) called at [vendor/magento/framework/App/Http.php:120]
#138 Magento\Framework\App\Http->launch() called at [generated/code/Magento/Framework/App/Http/Interceptor.php:23]
#139 Magento\Framework\App\Http\Interceptor->launch() called at [vendor/magento/framework/App/Bootstrap.php:263]
#140 Magento\Framework\App\Bootstrap->run(&Magento\Framework\App\Http\Interceptor#000000002174b9200000000079d932e6#) called at [index.php:39]
</pre>


Apparently the error comes because the plugin

\Vertex\AddressValidation\Plugin\Adminhtml\AddBlockToOrderCreateForm::afterGetForm

Tries to receive the getJsVariablePrefix but it returns null.

However in the block declaration the expected value is a string

I'm not sure why this is not set but I can see that this variable is only set when creating an order and not when editing the form.

  • \Magento\Sales\Block\Adminhtml\Order\Create\BillingAddress
  • \Magento\Sales\Block\Adminhtml\Order\Create\ShippingAddress

Please provide Severity assessment for the Issue as Reporter. This information will help during Confirmation and Issue triage processes.

  • [X] Severity: S0 _- Affects critical data or functionality and leaves users without workaround._
  • [ ] Severity: S1 _- Affects critical data or functionality and forces users to employ a workaround._
  • [ ] Severity: S2 _- Affects non-critical data or functionality and forces users to employ a workaround._
  • [ ] Severity: S3 _- Affects non-critical data or functionality and does not force users to employ a workaround._
  • [ ] Severity: S4 _- Affects aesthetics, professional look and feel, “quality” or “usability”._
Bundled Extension ready for confirmation

Most helpful comment

Hello together,

after debugging it all seems to boil down to a wrong constructor parameter type for $prefix. As the PHPdoc of the corresponding class property states it is expected to be null OR string. Since strict types are forced the constructor parameter is declared wrong. It expects only a string but receives null.

Here is a patch that works fine for us:

--- vendor/vertex/module-address-validation/Block/Adminhtml/CleanseAddressButton.php
+++ vendor/vertex/module-address-validation/Block/Adminhtml/CleanseAddressButton.php
@@ -32,7 +32,7 @@
         Context $context,
         Config $config,
         Data $backendHelper,
-        string $prefix = '',
+        ?string $prefix = '',
         array $data = []
     ) {
         $this->config = $config;

I did not investigate it any further since this seems to be a small typo kind of error and not messed up logic. Updating addresses works fine so far. If anybody has legit concerns please let us know. So far I hope it helps.

All 12 comments

Hi @ioweb-gr. Thank you for your report.
To help us process this issue please make sure that you provided the following information:

  • Summary of the issue
  • Information on your environment
  • Steps to reproduce
  • Expected and actual results

Please make sure that the issue is reproducible on the vanilla Magento instance following Steps to reproduce. To deploy vanilla Magento instance on our environment, please, add a comment to the issue:

@magento give me 2.4-develop instance - upcoming 2.4.x release

For more details, please, review the Magento Contributor Assistant documentation.

Please, add a comment to assign the issue: @magento I am working on this


  • Join Magento Community Engineering Slack and ask your questions in #github channel.

    :warning: According to the Magento Contribution requirements, all issues must go through the Community Contributions Triage process. Community Contributions Triage is a public meeting.

:clock10: You can find the schedule on the Magento Community Calendar page.

:telephone_receiver: The triage of issues happens in the queue order. If you want to speed up the delivery of your contribution, please join the Community Contributions Triage session to discuss the appropriate ticket.

:movie_camera: You can find the recording of the previous Community Contributions Triage on the Magento Youtube Channel

:pencil2: Feel free to post questions/proposals/feedback related to the Community Contributions Triage process to the corresponding Slack Channel

@magento give me 2.4-develop instance

Hi @ioweb-gr. Thank you for your request. I'm working on Magento instance for you.

This seems to affect only upgraded instances as it doesn't occur on newly created orders on the test instance.

@magento give me 2.4-develop instance

Hi @Shubham0492. Thank you for your request. I'm working on Magento instance for you.

@Shubham0492 Keep in mind you'll need an instance that was upgraded from 2.3 for example to 2.4 to replicate.

Hello together,

after debugging it all seems to boil down to a wrong constructor parameter type for $prefix. As the PHPdoc of the corresponding class property states it is expected to be null OR string. Since strict types are forced the constructor parameter is declared wrong. It expects only a string but receives null.

Here is a patch that works fine for us:

--- vendor/vertex/module-address-validation/Block/Adminhtml/CleanseAddressButton.php
+++ vendor/vertex/module-address-validation/Block/Adminhtml/CleanseAddressButton.php
@@ -32,7 +32,7 @@
         Context $context,
         Config $config,
         Data $backendHelper,
-        string $prefix = '',
+        ?string $prefix = '',
         array $data = []
     ) {
         $this->config = $config;

I did not investigate it any further since this seems to be a small typo kind of error and not messed up logic. Updating addresses works fine so far. If anybody has legit concerns please let us know. So far I hope it helps.

Idid the same patch on my installation but opened the issue anyways just in case I was missing something

Thank you for this patch, I had the same bug in a shop that has been migrated from 1.9.4.0 to 2.4.1.

This was occurring with all orders, regardless of whether they were placed before or after the migration.

Was this page helpful?
0 / 5 - 0 ratings