Odoo Insights

Odoo module upgrade fails with missing dependency errors

Your Odoo upgrade fails with errors like 'Missing dependency: web_studio' or 'Module base depends on web, which is not installed'. This guide shows how to diagnose and fix missing dependency errors during Odoo module upgrades without coding or server access.

2026-05-05 · 8 minutes

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 installed Missing dependency: web_studio Required 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 ImportError or ModuleNotFoundError
  • 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 missing
  • l10n_generic_coa → a localization module is missing
  • web → 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):

  1. Go to Apps → Apps.
  2. Click Update Apps List to refresh the list.
  3. Search for the module name (e.g., Web Studio).
  4. 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:

  1. List all modules and their dependencies:
    odoo-bin -d your_database --list-deps
  2. 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 psycopg2 or database-level errors (e.g., relation does not exist)
  • The module upgrade fails with a Python traceback involving models.py or security/ir.model.access.csv
  • You see errors like KeyError: 'ir.model' or AttributeError: '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-addons or 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:

  1. Backup your database and /odoo-custom-addons folder
  2. Update the Apps list
  3. Check for disabled core modules
  4. Install any missing dependencies
  5. Test a single module upgrade in staging
  6. 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 Scope

FAQ

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.