Skip to content

Odoo 'addons_path' Not Found — Module Discovery Failures Fix

DeployMonkey Team · March 24, 2026 8 min read

Addons Path Configuration Errors in Odoo

When Odoo cannot find your custom modules, the root cause is almost always an incorrect addons_path configuration. You will see errors like:

odoo.modules.module: addons paths: ['/opt/odoo/odoo/addons', '/opt/odoo/odoo/odoo/addons']
WARNING odoo.modules.module: module my_custom_module: module not found
ERROR odoo.modules.loading: Module my_custom_module: not installable

Or during startup:

odoo: error: option --addons-path: the path '/opt/odoo/custom' does not exist or is not a directory

Understanding addons_path

The addons_path parameter tells Odoo where to look for modules. Each path must be a directory that either contains modules directly or contains subdirectories that are modules (have __manifest__.py).

# Correct structure:
/opt/odoo/custom/
  my_module/
    __manifest__.py
    __init__.py
    models/
  another_module/
    __manifest__.py
    __init__.py

The path should point to /opt/odoo/custom/, NOT to /opt/odoo/custom/my_module/.

Fix 1: Verify Paths Exist

# Check what's configured
grep addons_path /etc/odoo.conf

# Verify each path exists
ls -la /opt/odoo/odoo/addons/
ls -la /opt/odoo/odoo/odoo/addons/
ls -la /opt/odoo/custom/

# Check that modules have __manifest__.py
find /opt/odoo/custom/ -name '__manifest__.py' -maxdepth 2

Fix 2: Correct the Configuration

Edit odoo.conf with the proper paths:

[options]
addons_path = /opt/odoo/odoo/addons,/opt/odoo/odoo/odoo/addons,/opt/odoo/custom

# Rules:
# - Comma-separated, NO spaces after commas
# - Base Odoo addons paths must be included
# - Each path must be an absolute path
# - Each path must exist as a directory
# - Enterprise path goes before community if using Enterprise

For Odoo Enterprise:

addons_path = /opt/odoo/enterprise,/opt/odoo/odoo/addons,/opt/odoo/odoo/odoo/addons,/opt/odoo/custom

Fix 3: Permission Issues

The Odoo user must have read access to all addons paths:

# Check ownership
ls -la /opt/odoo/custom/

# Fix ownership
sudo chown -R odoo:odoo /opt/odoo/custom/

# Ensure read + execute permission on directories
sudo chmod -R 755 /opt/odoo/custom/

Fix 4: Docker Volume Mounting

In Docker, addons paths must match the container's filesystem, not the host:

# docker-compose.yml
volumes:
  - ./custom-addons:/mnt/extra-addons

# odoo.conf inside container
addons_path = /mnt/extra-addons,/usr/lib/python3/dist-packages/odoo/addons

Common mistake: configuring the host path in odoo.conf instead of the container path.

Fix 5: Module Not Found After Adding Path

After updating addons_path, you must update the module list:

# Restart Odoo first
sudo systemctl restart odoo

# Then in Odoo:
# Settings > Technical > Update Apps List
# Or via command line:
./odoo-bin -c /etc/odoo.conf -d your_db --update=base --stop-after-init

Diagnostic Checklist

CheckCommandExpected
Path existsls -d /path/to/addonsDirectory listed
Module has manifestls /path/to/addons/module/__manifest__.pyFile exists
Permissions correctsudo -u odoo ls /path/to/addons/Can list files
No trailing spacesgrep addons_path /etc/odoo.confClean comma separation

Prevention

DeployMonkey configures addons_path automatically during instance provisioning. Custom modules are deployed to managed paths with correct permissions. The AI agent validates module structure before deployment.