Odoo Insights

Odoo worker longpolling not updating data in real time

Odoo’s longpolling stops pushing updates to users, causing stale screens and missed changes. This guide explains the most common root cause and how to restore real-time updates in minutes.

2026-05-13 · 7 minutes

The screen stays frozen even though others changed the data

You notice that when someone edits a record in Odoo, other users on the same screen do not see the change instantly. The browser tab shows a spinning wheel or a stale value. After a few seconds or minutes, the update finally appears, but it is no longer real time.

This is not a network or browser issue alone. The problem is usually on the Odoo server side, specifically in the worker process and its longpolling connection. Longpolling is the technology Odoo uses to push updates from the server to the web client without the user having to refresh the page.

When longpolling fails, users experience delayed or missing updates, which slows down operations and risks data conflicts.

Why longpolling stops working in Odoo

Longpolling relies on a persistent HTTP connection between the Odoo web client and the Odoo worker process. The worker listens for database changes and pushes them to the client. If this connection drops or times out, updates are delayed until the client reconnects.

The most common cause is a misconfigured or overloaded Odoo worker process. Each worker has a limited number of longpolling connections it can handle at once. When too many users or background jobs connect, or when the worker crashes silently, longpolling breaks silently.

Other causes include:

  • Timeout settings that are too short for your network or user load.
  • Worker process limits set too low in your Odoo configuration.
  • Database locks or long-running queries that block the worker from responding.
  • Custom modules that override the longpolling endpoint or use too many resources.

In Odoo SaaS or on-premise deployments, this often appears after upgrades or when adding many users at once.

Quick checks before you dive deeper

Check 1: Is the longpolling endpoint responding?

Open a browser tab and go to:

http://your-odoo-server:8069/longpolling/poll

If you see a blank page or a 404 error, the longpolling endpoint is down. If you see a JSON response with {"result": "ok"}, the endpoint is alive.

Check 2: Are workers running and accepting connections?

Run this command on the Odoo server:

sudo systemctl status odoo

If the service is active (running), the worker is up. If it is inactive or failed, restart it and check logs.

Check 3: Are there too many workers or too few?

Run:

ps aux | grep odoo

If you see more than 4–6 worker processes for a small deployment, you may be overloading the system. If you see only one worker for 50+ users, longpolling will struggle.

Check 4: Are logs showing longpolling errors?

Look at the Odoo log file (usually /var/log/odoo/odoo-server.log):

sudo tail -n 100 /var/log/odoo/odoo-server.log | grep -i "longpolling\|poll\|timeout\|worker"

Search for lines with longpolling, poll timeout, worker timeout, or queue full. These indicate the worker is struggling to handle connections.

How to restore real-time updates step by step

Step 1: Restart the Odoo worker safely

If the worker is running but longpolling is broken, restart it to clear stuck connections:

sudo systemctl restart odoo

What success looks like: After restart, users should see immediate updates again within 30 seconds. If not, move to the next step.

Step 2: Adjust worker count and longpolling timeout

Edit your Odoo configuration file (usually /etc/odoo/odoo.conf or /etc/odoo-server.conf). Add or update these lines:

[options]
workers = 4
longpolling_timeout = 60
  • workers = 4 sets the number of worker processes. Start with 2x your CPU cores, but not more than 8 for small servers.
  • longpolling_timeout = 60 sets the longpolling connection timeout to 60 seconds. Increase to 120 if your network is slow or users are remote.

Save the file and restart Odoo:

sudo systemctl restart odoo

Step 3: Check for blocking database queries

If longpolling is still slow after restart, a long-running query may be blocking the worker. To check:

sudo -u postgres psql -d odoo_db_name -c "SELECT pid, usename, query_start, state, query FROM pg_stat_activity WHERE state = 'active' ORDER BY query_start DESC LIMIT 10;"

Look for queries that have been running for more than 5 seconds. If you find one, either kill it (if safe) or optimize it in your custom code or custom modules.

Step 4: Temporarily disable custom modules

If you have custom modules installed, they may interfere with longpolling. Disable them one by one via the Odoo UI under Apps → Update Apps List → Uninstall, or via command line:

sudo -u odoo /usr/bin/odoo-bin --stop-after-init -d odoo_db_name -i base,module1,module2 --uninstall=module3

Restart Odoo and test longpolling again. If it recovers, the issue is in one of the disabled modules.

Step 5: Scale up or optimize for load

If your server is under heavy load (CPU > 80%, RAM > 90%), longpolling will degrade. Consider:

How to verify the fix worked

After applying the steps above, wait 2 minutes, then test:

  1. Open two browser tabs with the same Odoo screen (e.g., a Sales Order list).
  2. In one tab, edit a record (change status, add a note).
  3. In the other tab, watch for the change to appear within 5–10 seconds.
  4. Check the Odoo log again for any new longpolling errors:
sudo tail -n 50 /var/log/odoo/odoo-server.log | grep -i "longpolling\|poll"

If no errors appear and the update is instant, longpolling is restored.

When to seek help and what to tell the support team

If you have applied all the steps above and longpolling is still broken after 15 minutes, escalate to your Odoo support or hosting provider with the following details:

  • Odoo version (run sudo -u odoo /usr/bin/odoo-bin --version).
  • Server OS and memory (run free -h and lscpu).
  • Number of active users and workers configured.
  • Last 50 lines of the Odoo log file showing longpolling errors.
  • A screenshot of the frozen Odoo screen and the exact time it happened.

Do not send generic "longpolling not working" tickets. Include the above data to help the team diagnose whether the issue is in your configuration, server resources, or a bug in your custom code or modules.

Preventing longpolling failures in the future

Once longpolling is restored, take these steps to avoid future incidents:

  • Set up monitoring for Odoo worker CPU, memory, and log errors. Use tools like Nagios, Zabbix, or Odoo’s built-in monitoring if available.
  • Review worker limits during peak hours. If CPU or RAM spikes above 75%, increase workers or upgrade your server.
  • Test custom modules in a staging environment before deploying to production. Longpolling issues often come from poorly coded modules.
  • Use Odoo’s official add-ons instead of custom code where possible. Official modules are optimized and tested for longpolling.
  • Schedule regular maintenance windows to restart workers and clear database locks.

If you are on a shared hosting plan, consider upgrading to a dedicated or cloud instance on Odoo’s pricing plans to avoid resource contention with other tenants.

Practical Next Step

Check Odoo worker logs now

Discuss Your Odoo Scope

FAQ

What is longpolling in Odoo?

Longpolling is a technique Odoo uses to push real-time updates from the server to the web browser without the user refreshing the page. It keeps a persistent HTTP connection open. When a change happens in the database, the server sends it down this connection, updating the screen instantly for all connected users.

How do I know if longpolling is broken?

Common signs are screens that do not update when others edit records, a spinning wheel or loading indicator that never stops, and updates appearing only after manual refresh. In the browser console, you may see errors like poll timeout or longpolling endpoint not responding.

Can I disable longpolling to avoid the issue?

No. Disabling longpolling will make Odoo behave like a traditional web app, requiring users to refresh the page to see changes. This is not recommended for teams that need real-time collaboration.

What is the safest worker count for a small team?

For a team of up to 20 users on a server with 4 CPU cores and 8GB RAM, start with 2–4 workers. Monitor CPU usage after deployment. If CPU stays below 70%, you can increase workers gradually. Never set workers higher than the number of CPU cores.

I upgraded Odoo and longpolling broke. What should I do?

After an upgrade, longpolling may break due to configuration changes or module incompatibilities. First, restart the Odoo worker. If the issue persists, check the Odoo log for module-related errors and review your custom modules against the new Odoo version. You may need to update or remove incompatible modules or adjust the longpolling timeout in your configuration file.