Skip to content

2.4.3

Upgrading to 2.4.3

This page details the issues that have been encountered when upgrading an existing Magento 2 project to 2.4.3 and the ways to fix them.

The release notes for the version can be found here which includes upgrade information, known issues, and details of what has been changed in this release.

The system requirements can be found here.

Unable to run bin/magento or composer failing during install

At the time of writing, there is currently an issue with PHP 8.0 specific code being included within the release for 2.4.3 which is causing a plugin in composer to fail during install, and if plugins are ignored with --no-plugins then bin/magento won't work either.

The current workaround that is working is to require "symfony/polyfill-php80": "^1.23" and also to add

"replace": {
    "magento/inventory-composer-installer": "*"
},
The above replace is also needed when upgrading to 2.4.2-p2.

The above issue is being tracked here.

Unable to apply data patch Magento/Paypal/Setup/Patch/Data/UpdateBmltoPayLater

If you have the path payment/paypal_express_bml/active present in your core_config_data table, then that patch will fail during setup:upgrade. The current "fix" is to run the below MySQL command.

DELETE FROM core_config_data WHERE path="payment/paypal_express_bml/active";

Link here for tracked issue.

Module issues

At the minute, the only module found not to work at all with 2.4.3 is mirasvit/module-search-elastic-ultimate as it still has a dependency for an old magento/framework version. The workaround currently is to instead require the latest version of mirasvit/module-search-ultimate which at the time of writing is 2.0.38 and set it to elasticsearch as the engine

Any module that has a requirement for Zend/Console or Laminas/Console will also fail, as Laminas/Console was removed for PHP8.0 support, but still works fine with PHP7.4, so you can require it manually with "laminas/laminas-console": "^2.8".

If the site requires edmondscommerce/module-magento2-test-runner, this will need to use version dev-MAG2.4 to match the changes in PHPunit 9.

The edmondscommerce/magento2-zalenium module is not supported on 2.4.3 due its Magento_Framework version requirement.

Integration Tests

All Integration tests' setup functions will need to match PHPUnit 9 by having a return type of void added, to stop QA failing.

MSI

If you currently have the MSI modules disabled, you will also need to disable the new MSI modules that have been added, these are listed below.

bin/magento module:disable Magento_GroupedCatalogInventory Magento_InventoryBundleImportExport Magento_InventoryBundleProductIndexer Magento_InventoryCatalogFrontendUi Magento_InventoryCatalogSearchBundleProduct Magento_InventoryCatalogSearchConfigurableProduct Magento_InventoryInStorePickupApi Magento_InventoryInStorePickupAdminUi Magento_InventoryInStorePickup Magento_InventoryInStorePickupGraphQl Magento_InventoryInStorePickupShippingApi Magento_InventoryInStorePickupQuoteGraphQl Magento_InventoryInStorePickupSales Magento_InventoryInStorePickupSalesApi Magento_InventoryInStorePickupQuote Magento_InventoryInStorePickupShipping Magento_InventoryInStorePickupShippingAdminUi Magento_InventoryQuoteGraphQl Magento_InventoryInStorePickupFrontend Magento_InventorySwatchesFrontendUi Magento_InventoryVisualMerchandiser Magento_InventoryWishlist Magento_InventoryInStorePickupMultishipping Magento_InventoryInStorePickupSalesAdminUi Magento_InventoryConfigurableProductFrontendUi Magento_InventoryInStorePickupWebapiExtension
If you previously had MSI disabled and don't disable these new modules, then the add to bag won't work.

Elasticsearch not installed previously

If the site was previously not using Elasticsearch before the upgrade, you will need to run the below mysql query before you can run setup:upgrade This will not work using bin/magento config:set it must be done via a MySQL command.

update core_config_data set value='elasticsearch7' where path = 'catalog/search/engine';

If the Magento_Catalog/product/view/gallery.phtml template has been overridden, you will likely need to amend it to match the new template version, otherwise the product page will not work correctly.

Two Factor Authentication

Magento 2.4.3 has 2FA enabled by default now. As a workaround for this with dev/local sites we are adding "markshust/magento2-module-disabletwofactorauth": "^1.1". After installing this module, on dev/local you will need to run bin/magento config:set twofactorauth/general/enable 0 to disable the admin 2FA.

Admin slow or timing out

In Magento 2.4.3 a new config field has been added called system/security/max_session_size_admin which has a default value of 256000 which is not enough for most sites. The issue mainly shows when using redis for sesions, but apparently can happen for file based as well. To get the admin working again, you can either increase this value or set it to 0 with bin/magento config:set system/security/max_session_size_admin 0.

Details of the issue can be found here.

duplicate URL rewrites issue

A new primary key was added to the catalog_url_rewrite_product_category table which can now flag duplicate URL rewrites, where before they would have been fine. To fix this issue, run the below MySQL commands.

START TRANSACTION;
CREATE TABLE temp LIKE catalog_url_rewrite_product_category;

INSERT INTO temp
SELECT DISTINCT * FROM catalog_url_rewrite_product_category;

DROP TABLE catalog_url_rewrite_product_category;
RENAME TABLE temp TO catalog_url_rewrite_product_category;
COMMIT;
Issue can be found here.

Swatches on Product page not showing out of stock status

If any swatches are used for configurable products (text/colour/image based), if the saleable quantity is 0, the swatch will not be crossed out. So the user can still select it and add to bag, but will then get the out of stock error, and at this point the swatch will be crossed out.

Issue can be found here.

Backorders do not work correctly with MSI

This issue is only present if you use MSI, have more than one source and allow backorders. The backorder info that is stored in the database for the order item is ALWAYS taken from the default source, not the source assigned to the order item.

Issue can be found here.

Issue with price and currency symbols on product page

There are 2 similar issues currently affecting this, and both appear to be caused by having the locale set to a different country than the general country options. The 2 issues being tracked are here and here.