Skip to content

Odoo Discuss Notifications Not Working — Chat Messages and Alerts Missing Fix

DeployMonkey Team · March 24, 2026 10 min read

Discuss Notification Failures

Odoo Discuss relies on real-time notifications for chat, channel messages, and activity alerts. When they stop working:

Issues:
- Chat messages not appearing in real-time (only after page refresh)
- "Connecting..." shown permanently in Discuss
- Desktop/browser notifications never appear
- @mention notifications not received
- Chatter updates not showing without refresh
- Bus service connection errors in browser console

Fix 1: Longpolling/Websocket Configuration

# Odoo uses longpolling (port 8072) or websocket for real-time notifications

# Check if longpolling is working:
curl -v http://localhost:8072/longpolling/poll

# For Odoo 17+, websocket is used:
# Check websocket endpoint:
# Browser DevTools > Network > WS tab
# Should see a websocket connection to /websocket

# If not working, check odoo.conf:
[options]
workers = 4          # Must be > 0 for longpolling to work
gevent_port = 8072   # Longpolling port

# workers = 0 (development mode) disables the separate gevent worker
# Longpolling works differently in dev mode

Fix 2: Nginx Proxy Configuration for Websocket

# Nginx must properly proxy websocket connections:

# For Odoo 17+ (websocket):
location /websocket {
    proxy_pass http://127.0.0.1:8072;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    
    # Timeout — keep connection alive
    proxy_read_timeout 86400;  # 24 hours
    proxy_send_timeout 86400;
}

# For older Odoo (longpolling):
location /longpolling/ {
    proxy_pass http://127.0.0.1:8072;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 86400;
}

Fix 3: Browser Notification Permissions

# Desktop notifications require browser permission:

# Check permissions:
# Chrome: click lock icon in URL bar > Notifications > Allow
# Firefox: click lock icon > Permissions > Notifications > Allow
# Edge: Settings > Cookies and permissions > Notifications

# In Odoo, enable desktop notifications:
# Settings > Discuss > enable "Desktop Notifications"
# Or per user: Preferences > Notification > Desktop

# Common blockers:
# - Browser notification permission denied
# - Do Not Disturb mode on OS
# - Browser running in focus mode
# - HTTPS required for notifications (HTTP won't work)

Fix 4: Bus Service Errors

# Check browser console (F12) for bus service errors:
# Common errors:
# - "Bus service: connection lost"
# - "WebSocket connection failed"
# - "longpolling: no response"

# Causes:
# 1. Workers = 0 in production (no gevent worker)
# 2. Nginx not proxying websocket/longpolling
# 3. Firewall blocking port 8072
# 4. SSL/TLS termination breaking websocket upgrade

# Test bus service:
# In browser console:
odoo.bus_service  // Should be defined
// Check websocket status in Network > WS tab

Fix 5: Notification Preferences

# Each user can configure notification preferences:

# Settings > Users > select user > Preferences tab
# "Notification" section:
# - "Handle by Emails" — no in-app notification, email only
# - "Handle in Odoo" — in-app notification via Discuss

# If set to "Handle by Emails":
# The user won't see real-time chat notifications
# Change to "Handle in Odoo" for real-time notifications

# Check across all users:
sudo -u postgres psql -d mydb -c "
  SELECT rp.name, rp.notification_type
  FROM res_users ru
  JOIN res_partner rp ON ru.partner_id = rp.id
  WHERE ru.active = true
  ORDER BY rp.name;
"

Fix 6: Cloudflare/CDN Interference

# CDNs may terminate websocket connections prematurely

# Cloudflare:
# Websockets are supported on all plans
# But idle timeout is 100 seconds on Free plan
# Odoo sends keepalive pings to prevent timeout

# If using Cloudflare:
# 1. Enable WebSockets in Network settings
# 2. Set proxy_read_timeout > 100 in Nginx
# 3. Consider using Cloudflare bypass for /websocket path

# Other CDNs may not support websockets at all
# Check CDN documentation for websocket support

Fix 7: Discuss Not Loading

# If the Discuss app itself doesn't load:

# Check for JavaScript errors (F12 > Console)
# Clear asset bundles and regenerate:
# Settings > Technical > Attachments > delete assets
# Restart Odoo

# Check if the mail module is installed:
# Settings > Apps > search "Discuss"
# The 'mail' module provides Discuss functionality

Prevention

DeployMonkey configures websocket proxy, notification services, and bus connections automatically. The AI agent monitors real-time notification delivery and detects connection issues before users notice missing messages.