Error upgrading Magento 2.3.5-p1 to 2.4.0

Hello. I am trying to upgrade Magento to 2.4.0 from 2.3.5-p1, and am getting the following error(s) which I require assistance with:

Problem 1
- magento/framework 100.0.2 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.3 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.4 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.5 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.6 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.7 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.8 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.9 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.10 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.11 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.12 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.13 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.14 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.15 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.16 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.17 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.18 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.19 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.0.20 requires php ~5.5.0|~5.6.0|~7.0.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.0 requires php ~5.6.0|7.0.2|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.1 requires php ~5.6.0|7.0.2|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.2 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.3 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.4 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.5 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.6 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.7 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.8 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.9 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.10 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.11 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.12 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.13 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.14 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.15 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.16 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.17 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 100.1.18 requires php ~5.6.5|7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.0 requires php 7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.1 requires php 7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.2 requires php 7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.3 requires php 7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.4 requires php 7.0.2|7.0.4|~7.0.6|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.5 requires php ~7.0.13|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.6 requires php ~7.0.13|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.7 requires php ~7.0.13|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.8 requires php ~7.0.13|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.9 requires php ~7.0.13|~7.1.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.10 requires php ~7.0.13|~7.1.0|~7.2.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 101.0.11 requires php ~7.0.13||~7.1.0||~7.2.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 102.0.0 requires php ~7.1.3||~7.2.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 102.0.1 requires php ~7.1.3||~7.2.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 102.0.2 requires php ~7.1.3||~7.2.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magento/framework 102.0.2-p2 requires php ~7.1.3||~7.2.0 -> your PHP version (7.3.22) does not satisfy that requirement.
- magepal/magento2-edit-order-email 1.1.2 requires magento/framework 100.0.*|100.1.*|101.0.*|102.0.* -> satisfiable by magento/framework[102.0.5, 102.0.5-p2, 102.0.4-p2, 102.0.3-p1, 102.0.4, 101.0.11, 102.0.2-p2, 101.0.10, 102.0.3, 101.0.9, 100.1.18, 102.0.2, 101.0.8, 102.0.1, 100.1.17, 102.0.0, 101.0.7, 100.1.16, 101.0.6, 100.1.15, 100.1.14, 101.0.5, 101.0.4, 100.1.13, 101.0.3, 100.1.12, 100.0.20, 101.0.2, 100.1.11, 100.1.10, 101.0.1, 100.0.19, 101.0.0, 100.0.18, 100.1.9, 100.1.8, 100.0.17, 100.0.16, 100.1.7, 100.1.6, 100.0.15, 100.1.5, 100.0.14, 100.1.4, 100.0.13, 100.1.3, 100.1.2, 100.0.12, 100.1.1, 100.0.11, 100.0.10, 100.1.0, 100.0.9, 100.0.8, 100.0.7, 100.0.6, 100.0.5, 100.0.4, 100.0.3, 100.0.2].
- magepal/magento2-edit-order-email 1.1.2 requires magento/framework 100.0.*|100.1.*|101.0.*|102.0.* -> satisfiable by magento/framework[102.0.5, 102.0.5-p2, 102.0.4-p2, 102.0.3-p1, 102.0.4, 101.0.11, 102.0.2-p2, 101.0.10, 102.0.3, 101.0.9, 100.1.18, 102.0.2, 101.0.8, 102.0.1, 100.1.17, 102.0.0, 101.0.7, 100.1.16, 101.0.6, 100.1.15, 100.1.14, 101.0.5, 101.0.4, 100.1.13, 101.0.3, 100.1.12, 100.0.20, 101.0.2, 100.1.11, 100.1.10, 101.0.1, 100.0.19, 101.0.0, 100.0.18, 100.1.9, 100.1.8, 100.0.17, 100.0.16, 100.1.7, 100.1.6, 100.0.15, 100.1.5, 100.0.14, 100.1.4, 100.0.13, 100.1.3, 100.1.2, 100.0.12, 100.1.1, 100.0.11, 100.0.10, 100.1.0, 100.0.9, 100.0.8, 100.0.7, 100.0.6, 100.0.5, 100.0.4, 100.0.3, 100.0.2].
- Can only install one of: magento/framework[102.0.5-p2, 103.0.0].
- Can only install one of: magento/framework[102.0.4-p2, 103.0.0].
- Can only install one of: magento/framework[102.0.5, 103.0.0].
- Can only install one of: magento/framework[102.0.3-p1, 103.0.0].
- Can only install one of: magento/framework[102.0.4, 103.0.0].
- Can only install one of: magento/framework[102.0.3, 103.0.0].
- Can only install one of: magento/framework[103.0.0, 102.0.5].
- magento/product-community-edition 2.4.0 requires magento/framework 103.0.0 -> satisfiable by magento/framework[103.0.0].
- Installation request for magento/product-community-edition 2.4.0 -> satisfiable by magento/product-community-edition[2.4.0].
- Installation request for magepal/magento2-edit-order-email 1.1.2 -> satisfiable by magepal/magento2-edit-order-email[1.1.2].

Can anyone advise how to proceed?
Thanks in advance!

Magento 2.4.0 requires PHP 7.4. According to your log, you’re running 7.3. Therefore, you’re failing the dependency checks.

Hi Craig,

I thought Magento 2.4 could be installed on php 7.3? Currently with Cloudways, if I attempt to update php to 7.4 I get this error:

IonCube is not avaliable for PHP 7.4 on temporary basis. Your app using
IonCube encryption won’t work properly. Read moreherefor further details

Please ensure all your applications on this server are compatible with PHP 7.4 ,
as otherwise they may not function properly.
Read more here about PHP 7 version compatibility.

Ian

Magento say it should work with PHP 7.3, but has not been tested.

Magento supports PHP 7.4.0. You can install Magento 2.4.0 with 7.3, but it is not tested or recommended. It is intended for upgrading from Magento 2.3.x to Magento 2.4.0. Ref

Having not tried to upgrade from 3.3.5 to 2.4.0, I have no experience to fall back, like expected behaviour etc… However, I still stand by my original evaluation of the issue for now as I’ve experienced that issue before when upgrading from 2.2.x to 2.3.x without first upgrading my version of PHP.

According to IonCube, they do reference PHP 7.4 in their latest versions. Perhaps upgrade IonCode first and start from there?

29th Jun 2020 - Loader version 10.4.0
Loaders for PHP 7.4. These will run files produced by the PHP 7.1 and 7.2 encoders.
Fix for an issue with the encoded_paths ini setting on Windows. Ref

Either way, it might be one of those situations where you get your monies worth and get a Cloudways ticket started.

Cheers Craig. I’ve just opened a support ticket with Cloudways as even though they’ve just added support for ElasticSearch 7.6, MariaDB 10.4 and PHP 7.4 to specifically support Magento 2.4, according to this link which is linked to when attempting to raise PHP to 7.4, Magento 2.4 isn’t supported on PHP 7.4 currently.

Cloudways support came back quickly for them, although the answer wasn’t overly helpful:

Hello there,

Could you please confirm the developer of the application. In order to make sure the ioncube is not required on it. As only the developer of the site can confirm these details. As on the PHP7.4 the iconcube is not available on it.

Please let us know if you require any further information from our side.

Thank you.

Regards

As I have a backup/restore facility within Cloudways, I went ahead and upgraded PHP to 7.4. Now I get this error when running composer update:

  Problem 1
    - magento/magento-coding-standard 1.0.2 requires squizlabs/php_codesniffer ~3.3.0 -> satisfiable by squizlabs/php_codesniffer[3.3.0, 3.3.1, 3.3.2] but these conflict with your requirements or minimum-stability.
    - magento/magento-coding-standard 1.0.1 requires squizlabs/php_codesniffer ~3.3.0 -> satisfiable by squizlabs/php_codesniffer[3.3.0, 3.3.1, 3.3.2] but these conflict with your requirements or minimum-stability.
    - magento/magento-coding-standard 1.0.0 requires squizlabs/php_codesniffer ~3.3.0 -> satisfiable by squizlabs/php_codesniffer[3.3.0, 3.3.1, 3.3.2] but these conflict with your requirements or minimum-stability.
    - magento/magento-coding-standard 1.0.2 requires squizlabs/php_codesniffer ~3.3.0 -> satisfiable by squizlabs/php_codesniffer[3.3.0, 3.3.1, 3.3.2] but these conflict with your requirements or minimum-stability.
    - Installation request for magento/magento-coding-standard ~1.0.0 -> satisfiable by magento/magento-coding-standard[1.0.0, 1.0.1, 1.0.2].

I’ve set php_codesniffer manually in composer.json

"squizlabs/php_codesniffer": "~3.5.4"

Now what is the issue?

After a day of battling with Magento, I now have 2.4.0 installed!

However…

Now when running “php bin/magento setup:upgrade” I get the following message:

Reading [Magento Install Directory]/public_html/composer.json
Loading config file [Magento Install Directory]/public_html/composer.json
Loading config file [Magento Install Directory]/public_html/auth.json
Reading [Magento Install Directory]/public_html/auth.json
Failed to initialize global composer: Composer could not find the config file: [Magento Install Directory]/public_html/var/composer_home/composer.json
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/ "Getting Started" section
Reading [Magento Install Directory]/public_html/vendor/composer/installed.json
Reading [Magento Install Directory]/public_html/composer.lock
Checking for "magento/composer-root-update-plugin: 1.0.0" for the Web Setup Wizard...
Reading [Magento Install Directory]/public_html/var/vendor/magento/composer-root-update-plugin/composer.json
Loading config file [Magento Install Directory]/public_html/var/vendor/magento/composer-root-update-plugin/composer.json
No Web Setup Wizard update needed for magento/composer-root-update-plugin; version 1.0.0 is already in [Magento Install Directory]/public_html/var.

What on earth does this mean?

I can’t say I’ve seen this issue before. Not knowing what you did exactly to resolve your other issues, it’s hard to guess. The most important looking line in there appears to be:

Failed to initialize global composer: Composer could not find the config file: [Magento Install Directory]/public_html/var/composer_home/composer.json

Which makes me think that a file has been deleted somewhere along the way. Have you tried Googling this line for hints? Google Search Results.