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 check whether my extensions are compatible before upgrading Magento 2?

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

To check Magento 2 extension compatibility, start by matching each vendor’s supported versions against your target release. Next, composer why-not magento/product-community-edition 2.4.9 shows which installed packages block the upgrade. A staging upgrade catches the runtime breaks Composer can’t see.

Quick answer

Before a Magento 2 upgrade, list your modules with composer show --direct, plus anything in app/code. Confirm vendor support for your target Magento and PHP versions, then use composer why-not and a dry run for conflicts. On Adobe Commerce, Adobe’s Upgrade Compatibility Tool also flags custom code that breaks on your target release. Finish with a staging upgrade, since Composer only proves the packages install.

How to check Magento 2 extension compatibility

Work through these steps on a copy of your codebase, never on the live store.

  1. List every installed module.composer show --direct lists only the packages your composer.json requires, without Magento’s own dependencies. Anything under app/code is custom or manually installed, and Composer will not check it for you. bin/magento module:status then shows which of these are enabled.
  2. Confirm vendor support for the target version. Open each vendor’s changelog, or its Adobe Commerce Marketplace listing if you bought it there. Note the latest release that supports your target Magento version and its PHP version. Flag any extension with no release for your target version and none since the previous Magento release. Treat those as abandoned and plan a replacement.
  3. Ask Composer what blocks the upgrade.composer why-not magento/product-community-edition 2.4.9 names every installed package whose constraints block the target release. Magento 2.4.9 is the current release line. On Adobe Commerce, the package is magento/product-enterprise-edition. Your own root composer.json shows up as a blocker too, which is expected.
  4. Run a Composer dry run on a branch. Change the Magento requirement in composer.json on a separate Git branch. composer update --dry-run then shows which packages would change and which would fail to resolve, without touching vendor.
  5. Scan custom code with the Upgrade Compatibility Tool. Adobe’s Upgrade Compatibility Tool analyzes your customizations and reports issues by severity. The report from bin/uct upgrade:check /path/to/magento/ arrives as JSON, so you can sort it or feed it into CI. Per Adobe’s documentation as of The tool only runs with Adobe Commerce access keys. On Magento Open Source, rely on vendor and Composer checks plus a manual code review.
  6. Test on staging with production data. Upgrade a staging copy, then run bin/magento setup:upgrade and bin/magento setup:di:compile. Test checkout, payment, shipping, admin grids, cron, and indexing. Payment and shipping modules plug into those flows, so test them before anything else.

Why Magento 2 extension compatibility checks can still miss problems

  • Composer only proves the packages install. Magento 2.4.9, released May 12, 2026, replaces Zend_Cache with Symfony Cache and Laminas MVC with a native PHP MVC. Extensions still calling those old classes can install cleanly and then fail at runtime.
  • Some vendors ship loose constraints such as "magento/framework": "*", which lets an untested module install on any version.
  • Modules in app/code and template overrides in your theme sit outside Composer, so review them by hand.
  • Magento 2.4.9 adds PHP 8.5 support and drops PHP 8.2. An extension with no php constraint in composer.json installs on PHP 8.5 without complaint. Its code may never have run on that version.
  • Back up the database and codebase before any test upgrade, even on staging.

Start checking Magento 2 extension compatibility early in upgrade planning. One unsupported payment or shipping module can set the timeline for the whole project. If you can’t fix extension conflicts in-house, Stagebit’s Magento development team can scope replacements before you set a release date.

Was this answer helpful?

Your feedback helps us improve our answers.

Still need help?

Talk to our Magento upgrade engineers

Found extension conflicts or abandoned modules in your audit? We can help you sort out what to update, replace, or rewrite before the upgrade.

Talk to Magento / Adobe Commerce Experts