How do I check whether my extensions are compatible before upgrading Magento 2?
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.
- List every installed module.
composer show --directlists only the packages yourcomposer.jsonrequires, without Magento’s own dependencies. Anything underapp/codeis custom or manually installed, and Composer will not check it for you.bin/magento module:statusthen shows which of these are enabled. - 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.
- Ask Composer what blocks the upgrade.
composer why-not magento/product-community-edition 2.4.9names every installed package whose constraints block the target release. Magento 2.4.9 is the current release line. On Adobe Commerce, the package ismagento/product-enterprise-edition. Your own rootcomposer.jsonshows up as a blocker too, which is expected. - Run a Composer dry run on a branch. Change the Magento requirement in
composer.jsonon a separate Git branch.composer update --dry-runthen shows which packages would change and which would fail to resolve, without touchingvendor. - 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. - Test on staging with production data. Upgrade a staging copy, then run
bin/magento setup:upgradeandbin/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/codeand 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.
Related 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.