Why module upgrades fail with missing dependency errors
You’ve scheduled an Odoo upgrade for a custom module in your production environment. The upgrade starts, runs for a few seconds, then stops with an error like:
Module base depends on web, which is not installedMissing dependency: web_studioRequired module web_digital_sign not found
These errors mean Odoo cannot load the module because it relies on other modules that are either missing, disabled, or not compatible with your current Odoo version. The risk isn’t just downtime—it’s data inconsistency if the upgrade partially runs before failing.
This problem affects:
- Operations teams who manage Odoo environments
- Junior engineers responsible for module upgrades
- Business users who depend on custom modules for daily workflows
Common symptoms include:
- Upgrade fails with a red error banner in the UI
- Server logs show
ImportErrororModuleNotFoundError - Module appears in the Apps list but is not upgraded or usable
- Users report missing features after a scheduled upgrade
What causes missing dependency errors in Odoo
Missing dependencies happen when a module requires another module to function, but that dependency is not available in your Odoo instance. Here are the most common causes:
1. Version mismatch
Each Odoo module is built for a specific Odoo version (e.g., 15.0, 16.0). If you upgrade a module to a version that requires Odoo 16.0 but your instance is running 15.0, the dependency web (a core module) may not exist in your version.
2. Disabled or uninstalled core modules
Some modules depend on core Odoo modules like web, base, or mail. If these are disabled (common in lightweight or cloud-hosted setups), upgrades fail.
3. Missing third-party modules
Custom modules often depend on third-party modules (e.g., web_studio, l10n_generic_coa). If these aren’t installed or are incompatible, the upgrade stops.
4. Incorrect module sequence
Odoo installs modules in a specific order. If a dependency is installed after the module that needs it, the upgrade fails.
5. Custom module path issues
If your custom modules are in /odoo-custom-addons but the server’s configuration points to a different path, Odoo can’t find required modules.
Quick checks to diagnose the issue
Start here before diving into logs or server access. These checks take less than 5 minutes and often reveal the root cause.
Check 1: Read the error message carefully
Look for the exact module name mentioned in the error. For example:
web_studio→ a studio dependency is missingl10n_generic_coa→ a localization module is missingweb→ a core web module is missing or disabled
Note the Odoo version and module version shown in the error. This tells you if you’re upgrading to a version incompatible with your Odoo instance.
Check 2: Open the Apps list and filter for the module
Go to Apps → Apps, search for the module name from the error. If it appears but is not upgraded, it may be waiting for dependencies. If it’s not listed at all, it may not be installed.
Check 3: Compare module versions with Odoo version
Check your Odoo version by clicking the help icon (?) in the top-right corner. Then, compare it to the module version in the error. If the module version is for Odoo 16.0 but your instance is 15.0, you must either:
- Downgrade the module to a 15.0-compatible version, or
- Upgrade your Odoo instance to 16.0 first
Check 4: Verify core modules are enabled
Go to Settings → Technical → Modules. Search for web, base, and mail. If they are not installed or disabled, enable them before retrying the upgrade.
Step-by-step fix: How to resolve missing dependencies
Follow these steps in order. Stop if a step resolves the issue.
Step 1: Confirm the missing module
Use the error message to identify the missing module. For example, if the error is:
Module 'account_invoice_export' depends on 'web_studio'
Then web_studio is missing.
Step 2: Install or enable the missing module
If the module is a core or official Odoo module (e.g., web, l10n_generic_coa):
- Go to Apps → Apps.
- Click Update Apps List to refresh the list.
- Search for the module name (e.g.,
Web Studio). - Click Install if it’s available.
If you don’t see it, it may not be in your Odoo instance. You’ll need to:
- Check if it’s included in your Odoo edition or plan
- Download the module from the Odoo Apps Store if available
- Add the module path to your Odoo configuration file
For custom modules, ensure they are in the correct path (e.g., /odoo-custom-addons) and that the server can access them.
Step 3: Upgrade the module again
After installing the dependency, go to Apps → Apps, find your module, and click Upgrade. If the error persists, proceed to the next step.
Step 4: Check module compatibility with Odoo version
If the module is for a newer Odoo version, you have two options:
| Option | Action | Risk |
|---|---|---|
| Option A: Downgrade the module | Find a version of the module compatible with your Odoo version (e.g., on GitHub or the Odoo Apps Store). Install it manually via the file system or Apps list. | May lose features or bug fixes in the newer version |
| Option B: Upgrade Odoo first | Plan an Odoo version upgrade before installing the module. Review the implementation guide for version-specific steps. | Higher risk, requires testing and planning |
If you choose Option B, test the upgrade in a staging environment first. Use a clone of your production database to avoid risk.
Step 5: Verify the module loads correctly
After upgrading or installing dependencies, reload the page. The module should appear in the Apps list with a green status. Test a key feature (e.g., export invoice, generate report) to confirm it works.
Advanced troubleshooting when quick fixes fail
If the module still won’t upgrade after installing dependencies, use these steps to dig deeper. These require access to the server or logs.
Check the server logs for exact errors
Navigate to your Odoo server logs (usually in /var/log/odoo/odoo-server.log or via your hosting dashboard). Search for the module name or ImportError. Example log entry:
2024-04-05 14:23:45,678 12345 INFO ? odoo.modules.loading: Module 'account_invoice_export' depends on module 'web_studio', which is not installed
This confirms the dependency chain and timing of the failure.
Verify module paths in the configuration file
Open your Odoo configuration file (e.g., /etc/odoo/odoo.conf). Look for the addons_path line. It should include paths to:
- Odoo core modules
- Your custom modules (e.g.,
/odoo-custom-addons) - Third-party modules
Example:
addons_path = /usr/lib/python3/dist-packages/odoo/addons,/odoo/custom-addons,/odoo/third-party
If /odoo-custom-addons is missing, add it and restart Odoo.
Test module installation manually via command line
If the UI fails, try installing the module via the command line. This bypasses UI issues and gives clearer errors. Example:
odoo-bin -i account_invoice_export --db_user=odoo --db_password=yourpassword
What this does: Starts Odoo in install mode for the module account_invoice_export. Success looks like:
Modules loaded: account_invoice_export
If you see ModuleNotFoundError: No module named 'web_studio', install web_studio first.
Check for dependency loops or circular references
Some modules depend on each other in a loop (e.g., Module A depends on Module B, which depends on Module A). This causes silent failures. To check:
- List all modules and their dependencies:
odoo-bin -d your_database --list-deps - Look for circular references in the output.
If found, you must break the loop by disabling one module or upgrading both simultaneously in the correct order.
When to seek help: Red flags and escalation triggers
Not all missing dependency issues can be resolved in-house. Use these triggers to decide when to escalate to a developer or Odoo partner.
Escalate immediately if:
- The error mentions
psycopg2or database-level errors (e.g.,relation does not exist) - The module upgrade fails with a Python traceback involving
models.pyorsecurity/ir.model.access.csv - You see errors like
KeyError: 'ir.model'orAttributeError: 'NoneType' object has no attribute 'read' - The error persists after installing all dependencies and restarting Odoo
- You suspect data corruption or partial upgrades (e.g., module appears upgraded but features are missing)
Before contacting support:
- Share the exact error message and Odoo version
- Include the output of
odoo-bin --version - Attach the relevant server log snippet (last 50 lines)
- Confirm whether the issue occurs in a staging environment
If you’re using a hosted Odoo plan, check your support tier on pricing page. Some plans include module upgrade support; others require a paid consultation.
Prevent future dependency errors: Best practices
Prevent missing dependency errors before they happen with these operational habits.
1. Maintain a module compatibility matrix
Keep a simple spreadsheet listing:
- Your Odoo version
- All custom and third-party modules
- Required Odoo version for each module
- Last tested upgrade path
Update it after every upgrade or module install.
2. Use a staging environment for upgrades
Never upgrade modules directly in production. Clone your production database to a staging environment and test the upgrade there first. Use a copy of your /odoo-custom-addons folder.
3. Schedule regular dependency audits
Every quarter, review:
- All installed modules
- Disabled core modules
- Module versions vs. Odoo version
Use the command:
odoo-bin -d your_database --list-modules | grep -i 'depends on'
This lists modules with dependencies so you can proactively check availability.
4. Document custom module paths and sources
If you use custom modules from GitHub or third parties, document:
- Repository URLs
- Branch or version tags
- Installation path (
/odoo-custom-addonsor custom) - Any manual patches or overrides
This prevents path issues during server restarts or migrations.
5. Follow a pre-upgrade checklist
Before any upgrade, run this checklist:
- Backup your database and
/odoo-custom-addonsfolder - Update the Apps list
- Check for disabled core modules
- Install any missing dependencies
- Test a single module upgrade in staging
- Plan a maintenance window for production
Summary: What to do today
Missing dependency errors during Odoo module upgrades are common but preventable. Start with the error message, identify the missing module, and install it. If the issue is version mismatch, plan an Odoo upgrade or module downgrade. Never skip staging tests.
Action for today: Open your Odoo instance, go to Apps → Apps, update the app list, and check for any modules marked with a red upgrade button. If you see a dependency error, follow the quick checks above to resolve it before scheduling the upgrade.
If you’re unsure, pause and review the Odoo implementation guide or contact your Odoo partner before proceeding. A failed upgrade risks data integrity and business continuity.
Practical Next Step
Check your Odoo module dependencies before upgrading
Discuss Your Odoo ScopeFAQ
What does 'Module X depends on module Y, which is not installed' mean?
It means the module you’re trying to upgrade (Module X) requires another module (Module Y) to work. If Module Y is missing, Odoo cannot load Module X, so the upgrade stops. Think of it like needing a specific app to open a file—if the app isn’t installed, the file won’t open.
Can I install a module for a newer Odoo version on an older Odoo instance?
No. Modules are version-specific. Installing a module built for Odoo 16.0 on an Odoo 15.0 instance will cause errors. You must either upgrade your Odoo instance to 16.0 or find a 15.0-compatible version of the module.
How do I know if a module is a core, official, or third-party module?
Core modules are included with Odoo and appear in the Apps list under the ‘Odoo’ category. Official modules are from Odoo SA and are available on the Odoo Apps Store. Third-party modules are custom or from external developers and are usually in /odoo-custom-addons.
What should I do if the module upgrade fails silently with no error message?
Silent failures often mean the upgrade started but didn’t complete. Check the server logs for clues. Run odoo-bin -d your_database --log-level=debug to increase logging detail. Also, verify the module is not partially upgraded by checking the Apps list and testing a feature.
Is it safe to upgrade modules directly in production?
No. Always upgrade modules in a staging environment first. Use a clone of your production database and test the upgrade there. Only proceed in production after confirming success in staging. This prevents data corruption and downtime if the upgrade fails.