Skip to content

Expert Answers to Your Magento, Shopify & Shopware Questions

Vendor-neutral, engineer-written explanations. Clear definitions first, then practical steps with real examples — no fluff.

Stagebit builds and maintains stores on Magento, Adobe Commerce, Shopify, Shopware, and Laravel, and this library holds the questions our own engineers get asked most often on each platform.

How do I use the Adobe Commerce Upgrade Compatibility Tool?

SB
Written by Stagebit Engineering Team
Updated October 2026 4 min read Verified by engineers

The Magento Upgrade Compatibility Tool is Adobe’s command-line scanner for checking custom code against a newer Adobe Commerce release. To use it, download it from Adobe’s Composer repository with your Commerce access keys. Then point its upgrade:check command at your store’s code and target version. Access is limited to Adobe Commerce, so Magento Open Source stores can’t download it.

Quick answer

The Upgrade Compatibility Tool (bin/uct) runs on Adobe Commerce on-premises and on cloud infrastructure; Magento Open Source is excluded. Install it with composer create-project magento/upgrade-compatibility-tool uct --repository https://repo.magento.com (Adobe Commerce access keys required). Then run bin/uct upgrade:check <dir> -c <target-version> to flag custom code as critical, error, or warning for that release. Reports export as JSON or HTML.

Which editions can run the Magento Upgrade Compatibility Tool?

Adobe states in its Upgrade Compatibility Tool prerequisites that the tool is available for Adobe Commerce instances only. Adobe also labels it “PaaS only”, which means it applies to cloud and on-premises projects.

EditionCan you use it?How
Adobe Commerce on-premisesYesCommand line via bin/uct
Adobe Commerce on cloud infrastructureYesAdobe recommends running it from the Site-Wide Analysis Tool
Adobe Commerce as a Cloud Service (SaaS)NoOutside the tool’s PaaS-only scope
Magento Open SourceNoThe download requires Adobe Commerce access keys

Magento Open Source teams have to scope upgrades without the UCT. The free Magento Coding Standard runs through PHP_CodeSniffer and works on any Magento 2 codebase. A trial upgrade on staging then catches what static checks miss.

How to use the Magento Upgrade Compatibility Tool, step by step

Using the Upgrade Compatibility Tool takes six steps, from access keys to a re-run after fixes.

1. Set up Adobe Commerce access keys and a Linux server

Add your Adobe Commerce access keys to auth.json (default location ~/.composer), or the Composer download fails outright. You need a Linux machine with PCNTL and the other required PHP extensions, plus Node.js. Give the tool at least 2 GB of RAM. You can install it on a separate box, as long as it can read the store’s source code.

2. Download bin/uct with Composer

composer create-project magento/upgrade-compatibility-tool uct --repository https://repo.magento.com
chmod +x ./uct/bin/uct

PhpStorm users can point the Magento PhpStorm plugin at this install and run the checks inside the IDE.

3. Run the Adobe Commerce UCT upgrade:check scan

bin/uct upgrade:check /var/www/magento -c 2.4.9

bin/uct reads your current version from the installation. If you leave out -c, it targets the latest stable release. Enter the version without quotes, per Adobe’s upgrade:check run guide. The target can’t be older than 2.3 or older than the version you already run.

4. Filter UCT results and export a JSON or HTML report

bin/uct upgrade:check /var/www/magento -c 2.4.9 -i --min-issue-level error --json-output-path ./uct-report.json --html-output-path ./uct-report.html

The -i flag hides issues your current version already has, so only new ones from the upgrade remain. Each issue in the report comes with an error code, a severity level, and the affected module. That JSON output is easy to wire into CI. A GitHub Actions or GitLab CI step can parse it and fail the build on critical issues.

5. Check core edits, database schema, and GraphQL changes

  • core:code:changes: compares your installation to a clean vanilla copy and lists any edits made directly to core code.
  • dbschema:diff: lists database schema differences between two versions, for example bin/uct dbschema:diff 2.4.7 2.4.9.
  • graphql:compare: compares two GraphQL endpoints and flags breaking or dangerous schema changes, which matters for headless or PWA frontends.

6. Auto-fix deprecated code with bin/uct refactor

Run bin/uct refactor <dir> to fix a small set of issues automatically. The set covers three cases only: deprecated argument-less function calls, $this in templates, and final on private methods. Everything else needs a developer. Re-run upgrade:check after each batch of fixes so the issue count tracks your progress.

What the Magento Upgrade Compatibility Tool doesn’t catch

  • composer updatedoesn’t upgrade the tool itself. Download a fresh copy before each project so its version list stays current.
  • UCT’s refactor command rewrites files in place. Run it on a separate Git branch and review the diff.
  • The upgrade:check -i flag only filters PHP API validations. Other issue types still show up in full.
  • A clean report doesn’t guarantee a safe upgrade. Static analysis never executes your code. A payment module that breaks at checkout will only show up in a staging test.

When to run the Magento Upgrade Compatibility Tool in an upgrade

Run the Upgrade Compatibility Tool first, before anyone estimates the upgrade. The count of critical issues and errors tells you how much custom code needs work. Keep re-running bin/uct through development, then finish with a full staging test. If critical issues sit in third-party modules, check the vendor’s changelog for a compatible release before patching them yourself. Our Magento development team can help you separate vendor problems from your own code.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our Magento experts

Stuck on a bin/uct report? We’ll help you scope what has to change before the upgrade.

Talk to Magento / Adobe Commerce Experts