Upgrade Commerce version

You can upgrade the Adobe Commerce code base to a newer version. Before upgrading the environment, review the System requirements in the Installation guide for the latest software version requirements.

Depending on the environment type (Development, Staging, or Production), your upgrade tasks may include the following:

  • Upgrade third-party extensions to the latest supported version.

  • Update the .magento/services.yaml file with the required service versions for MariaDB (MySQL), OpenSearch, RabbitMQ, and Redis or Valkey so they remain compatible with the target Adobe Commerce version.

    • For development/integration/PR branches, these changes are used directly as part of the environment configuration.
    • For Pro Staging and Production environments, Adobe Commerce Support performs the actual service installation or update, but you must still keep .magento/services.yaml current, complete, and valid, because its contents are validated during deployment.
  • Update the .magento.app.yaml file with new settings for hooks and environment variables.

TIP
Before beginning an upgrade or a patching process, create an active branch from the Integration environment and check out the new branch to your local workstation. Dedicating a branch to the upgrade or the patch process helps to avoid interference with your work in progress.

Pro services support

To request and complete a Pro service upgrade in Staging or Production, follow these steps:

  1. To install or update services in Staging and Production environments only, submit an Adobe Commerce Support ticket.

    In the ticket, specify the required service changes, include the updated .magento.app.yaml and .magento/services.yaml files and note the target PHP version.

    PHP version, Composer updates, extensions, and environment settings are self-service changes. Adobe may need to update the New Relic agent for PHP version compatibility. See PHP settings in Application configuration.

    note important
    IMPORTANT
    When selecting the Environment field in the ticket form, use Adobe’s environment naming. For example, select Staging even if you call that environment Dev internally. You can mention your internal name in the description, but the Environment field must use Adobe’s nomenclature.
  2. Confirm the upgrade schedule through Adobe’s two-part process: you confirm the requested date and time first, then Support submits it to the Infrastructure team for final confirmation.

    Production changes (Pro only) require at least two business days’ notice, excluding weekends. For example, the Cloud Infrastructure team must acknowledge a Monday upgrade by the preceding Wednesday. Expect additional lead time during peak demand. To avoid delays, respond to the initial request at least 48 hours before the window. The upgrade is not considered scheduled until you receive final confirmation.

    note
    NOTE
    Provide maintenance windows in UTC. Staging upgrades are not scheduled in advance and are typically completed the same day as the request.
    After a RabbitMQ upgrade, redeploy the environment to re-initialize the message queues.
  3. Validate the upgrade in a Staging or Integration environment before scheduling it in Production.

    Issues caused by third-party modules, custom code, or dependency compatibility often surface during the redeployment that follows a service upgrade. To validate multiple service upgrades one at a time, a reasonable order is Valkey or Redis, then RabbitMQ, then OpenSearch, then MariaDB. This is not a required sequence. Database upgrades carry the highest operational impact and deserve the most caution.

    Adobe does not guarantee the exact duration of a Production maintenance window in advance, since timing depends on the environment and the services involved. Use the time your Staging upgrade takes as a practical estimate when planning the Production window.

  4. Redeploy the environment after Adobe completes the service upgrade so the change takes effect, even if the Adobe Commerce application version does not change.

    If the upgrade includes OpenSearch, also plan for a full reindex. Adobe cannot guarantee zero downtime for a service upgrade, so plan a maintenance window that allows time to redeploy, reindex if needed, and validate the storefront and Admin before reopening the site.

Customer availability during upgrades

A representative from your team or implementation partner must be available online for the duration of the scheduled Production upgrade window. Scheduling during a low-traffic period does not make the upgrade hands-off. Adobe manages the cloud infrastructure upgrade but cannot validate your application behavior, integrations, custom code, or business workflows.

The available representative must be able to:

  • Monitor the storefront and critical business transactions during and after the upgrade.
  • Respond to questions from Adobe Support or the Cloud Infrastructure team.
  • Confirm that integrations, extensions, customizations, cron jobs, queues, and other customer-specific functions are working as expected.
  • Validate business-critical workflows, such as checkout, catalog views, search, login, and order processing.
  • Report unexpected behavior promptly, while the upgrade context and logs are still available.
TIP
For Pro projects, service upgrades in Production also require advance scheduling and a two-part confirmation process with Adobe Support. See Pro services support.

Maintenance mode

Maintenance mode is not a substitute for customer availability. Maintenance mode blocks storefront access, but does not validate application services, integrations, queues, cron jobs, checkout, or other customer-specific functions.

If the planned work requires maintenance mode, coordinate its use with Adobe Support and follow the instructions for that upgrade. Afterward, confirm that the storefront and critical workflows are operating normally before considering the work complete.

Configuration files

To account for changes to the default configuration settings for Adobe Commerce on cloud infrastructure or the application, update your project configuration files before upgrading the application. The latest defaults can be found in the magento-cloud GitHub repository.

composer.json

Before upgrading, always check that the dependencies in the composer.json file are compatible with the Adobe Commerce version.

To update the composer.json file for Adobe Commerce version 2.4.4 and later**:

  1. Add the following allow-plugins to the config section:

    code language-json
    
    "config": {
       "allow-plugins": {
          "dealerdirect/phpcodesniffer-composer-installer": true,
          "laminas/laminas-dependency-plugin": true,
          "magento/*": true
       }
    },
    
  2. Add the following plugin to the require section:

    code language-json
    "require": {
        "magento/composer-root-update-plugin": "^2.0.3"
    },
    
  3. Add the following component to the extra:component_paths section:

    code language-json
    "extra": {
       "component_paths": {
          "tinymce/tinymce": "lib/web/tiny_mce_5"
       },
    },
    
  4. Save the file. Do not commit or push changes to your branch yet.

  5. Continue with the upgrade process.

Environment Backup

Adobe recommends creating a backup of the instance before an upgrade. Use the following steps to back up your Integration, Staging, and Production environments.

To back up your integration environment database and code:

  1. Create a local backup of the remote database.

    code language-bash
    magento-cloud db:dump
    
    note
    NOTE
    The magento-cloud db:dump command runs the mysqldump command with the --single-transaction flag, which allows you to back up your database without locking the tables.
  2. Back up code and media.

    code language-bash
    php bin/magento setup:backup --code [--media]
    

    Optionally, you can omit [--media] if you have a large number of static files that are already in source control.

To back up your Staging or Production environment database before deploying:

  1. Use SSH to log in to the remote environment.

  2. Create a database dump. To choose a target directory for the DB dump, use the --dump-directory option.

    code language-bash
    vendor/bin/ece-tools db-dump
    

    The dump operation creates a dump-<timestamp>.sql.gz archive file in your remote project directory. See Back up database.

Application upgrade

Review the service versions information for the latest software version requirements before upgrading your application.

To upgrade the application version:

  1. On your local workstation, change to your project directory.

  2. Set the version constraint for the target upgrade version. This step is only necessary if the target version is outside the existing constraint.

    code language-bash
    composer require-commerce "magento/magento-cloud-metapackage":">=CURRENT_VERSION <NEXT_VERSION" --no-update
    
    note
    NOTE
    You must use the version constraint syntax to successfully update the ece-tools package. You can find the version constraint in the composer.json file for the version of the application template you are using for the upgrade.
  3. Update your composer.json file with the core Commerce upgrade version.

    code language-bash
    composer require-commerce magento/product-enterprise-edition 2.4.8 --no-update
    
  4. If you’re using B2B, update your composer.json file with the supported version for Commerce.

    code language-bash
    composer require-commerce magento/extension-b2b 1.5.2 --no-update
    
  5. Update project dependencies.

    code language-bash
    composer update
    
  6. Review the patches that are currently applied:

    • If there are any patches installed in the m2-hotfixes directory, submit an Adobe Commerce Support ticket and work with Adobe Commerce Support to verify which patches can still be applied to the new version. Remove the non-applicable patch(es) from the m2-hotfixes directory.

    • If there are any [Quality Patches] applied in the .magento.env.yaml file, verify whether they can still be applied to the new version. Remove the non-applicable patch(es) from the QUALITY_PATCHES section of the .magento.env.yaml file.

    Method 1: Verify the applicable versions in the Quality Patches release notes

    Method 2: View available patches and status

    Method 3: Search for patches

  7. Add, commit, and push code changes.

    code language-bash
    git add -A
    
    code language-bash
    git commit -m "Upgrade"
    
    code language-bash
    git push origin <branch-name>
    

    git add -A is required to add all changed files to source control because of the way Composer marshals base packages. Both composer install and composer update marshal files from the base package (magento/magento2-base and magento/magento2-ee-base) into the package root.

    The files that Composer marshals belong to the new version of Adobe Commerce, to overwrite the outdated version of those same files. Currently, marshaling is disabled in Adobe Commerce, so you must add the marshaled files to source control.

  8. To complete the upgrade, wait for deployment.

  9. Verify the upgrade in your Integration, Staging, or Production environment by using SSH to log in and check the version.

    code language-bash
    php bin/magento --version
    

Upgrade extensions

Review your third-party extension and module pages in Marketplace or other company sites and verify support for Adobe Commerce and Adobe Commerce on cloud infrastructure. If you must upgrade any third-party extensions and modules, Adobe recommends working in a new integration branch with your extensions disabled.

To verify and upgrade your extensions:

  1. Create a branch on your local workstation.

  2. Disable your extensions as needed.

  3. When available, download extension upgrades.

  4. Install the upgrade as documented by the third-party documentation.

  5. Enable and test the extension.

  6. Add, commit, and push the code changes to the remote.

  7. Push to and test in your integration environment.

  8. To test in a pre-production environment, push to the Staging environment.

Adobe recommends upgrading your Production environment before including the upgraded extensions in your site launch process.

NOTE
When you upgrade your application version, the upgrade process updates to the latest version of the Fastly CDN module automatically.

Troubleshoot upgrade

If the upgrade fails, you receive an error message in the browser indicating that you cannot access your storefront or the Admin panel:

There has been an error processing your request
Exception printing is disabled by default for security reasons.
  Error log record number: <error-number>

To resolve the error:

  1. On your local workstation, change to your project directory.

  2. Use SSH to log in to the remote environment.

    code language-bash
    magento-cloud ssh
    
  3. Open the ./app/var/report/<error number> file.

  4. Examine the logs and determine the source of the issue.

  5. Add, commit, and push code changes.

    code language-bash
    git add -A && git commit -m "Fixed deployment failure" && git push origin <branch-name>
    
recommendation-more-help
commerce-on-cloud-help-cloud-guide