The Login Problem
When users cannot log into Odoo, everything stops. No access to CRM, no invoicing, no inventory management. Login failures have many causes — incorrect credentials, disabled accounts, session issues, database problems, or browser-side issues. This guide covers each scenario systematically.
Error 1: Access Denied
# Error message on login page:
"Wrong login/password"
# Or in Odoo logs:
WARNING odoo.addons.base.models.res_users: Login failed for db:mydb login:[email protected]
# Cause 1: Wrong password
# Fix: Reset the password
# As admin: Settings → Users → select user → Change Password
# Cause 2: Wrong database selected
# If multiple databases exist, user may be logging into the wrong one
# Check the database selector on the login page
# Cause 3: User email changed
# Login uses the email field (login), not the name
# Check: Settings → Users → verify the "Email Address" fieldError 2: User Account Disabled
# Symptom: Correct password but still "Access Denied"
# Cause: User record is archived (active = False)
# Fix as admin:
# Settings → Users → click "Filters" → "Archived"
# Find the user → click "Unarchive"
# Via shell (if admin is also locked out):
user = env['res.users'].sudo().with_context(active_test=False).search(
[('login', '=', '[email protected]')]
)
user.active = True
env.cr.commit()Error 3: Admin Locked Out
# If the admin account itself is locked out:
# Fix Option 1: Reset admin password via database
psql -d mydb -c "
UPDATE res_users
SET password = ''
WHERE login = 'admin';
"
# Then use Odoo shell to set a new password:
./odoo-bin shell -d mydb
env['res.users'].browse(2).password = 'NewSecurePassword123'
env.cr.commit()
exit()
# Fix Option 2: Reset via command line
./odoo-bin -d mydb -u base --stop-after-init
# Then log in with the master password to reset admin
# Fix Option 3: Direct password hash update
python3 -c "
from passlib.context import CryptContext
ctx = CryptContext(schemes=['pbkdf2_sha512'])
print(ctx.hash('NewPassword123'))
"
# Then:
psql -d mydb -c "UPDATE res_users SET password = 'HASH_FROM_ABOVE' WHERE login = 'admin';"Error 4: Blank Screen After Login
# User enters correct credentials, page loads but shows blank or white screen
# Cause 1: JavaScript/CSS asset compilation error
# Fix: Clear browser cache (Ctrl+Shift+Delete)
# Or clear Odoo asset cache:
psql -d mydb -c "DELETE FROM ir_attachment WHERE name LIKE '%assets_%';"
# Restart Odoo
# Cause 2: Browser extension conflict
# Fix: Try incognito/private browsing mode
# Common culprits: ad blockers, translation extensions
# Cause 3: Mixed content (HTTP/HTTPS)
# Fix: Set proxy_mode = True in odoo.conf if behind reverse proxyError 5: Session Expired Immediately
# User logs in successfully but gets kicked back to login page
# Cause 1: Cookie/session issues
# Fix: Clear browser cookies for the Odoo domain
# Or try a different browser
# Cause 2: Session storage full
# Fix: Clear old sessions on the server
find /var/lib/odoo/.local/share/Odoo/sessions -mtime +7 -delete
# Cause 3: Multiple Odoo instances on same domain
# Sessions from one instance conflict with another
# Fix: Use different session cookie names in odoo.conf
# Or use different domains for each instanceError 6: LDAP/OAuth Authentication Failure
# If using LDAP or OAuth login:
# LDAP:
# Error: "Could not bind to LDAP server"
# Fix: Verify LDAP server address, port, bind DN, and password
# Settings → Technical → LDAP Parameters → Test Connection
# OAuth (Google/Microsoft login):
# Error: "Authentication failed" after provider redirect
# Fix:
# 1. Check OAuth provider credentials (client ID, secret)
# 2. Verify redirect URI matches: https://your-odoo.com/auth_oauth/signin
# 3. Check that the OAuth module is installed and configured
# 4. Verify the user's email matches an existing Odoo userError 7: Portal User Cannot Access Backend
# Portal users (customers/vendors) can only access the portal, not /web
# Symptom: Portal user logs in at /web and sees limited portal interface
# Or gets redirected to /my instead of /web
# This is by design — portal users are not internal users
# Fix: If the user needs backend access:
# 1. Settings → Users → select user
# 2. Change user type from "Portal" to "Internal User"
# 3. Assign appropriate security groups
# Warning: This typically requires an additional user licenseError 8: Password Policy Rejection
# Error: "Password does not meet requirements"
# Cause: Password complexity policy enabled
# auth_password_policy module enforces minimum length, complexity
# Check requirements:
# Settings → Users → Password Policy
# Minimum length, uppercase, lowercase, digits, special characters
# Fix: Set a password that meets all requirements
# Or adjust the policy if it's too restrictiveDiagnosing Login Issues
# 1. Check Odoo logs for the specific error:
grep -i 'login\|auth\|password\|denied' /var/log/odoo/odoo-server.log | tail -20
# 2. Verify user exists and is active:
psql -d mydb -c "SELECT id, login, active, share FROM res_users WHERE login = '[email protected]';"
# 3. Test with a known-good account:
# Try logging in with the admin account to rule out system-wide issues
# 4. Check database accessibility:
psql -d mydb -c "SELECT count(*) FROM res_users;"
# 5. Browser developer tools (F12):
# Network tab → look for failed requests during login
# Console tab → look for JavaScript errors