Odoo version - 13 community
I am customizing live chat and sometimes get the error, that logined user who is operator of this live chat sends message as visitor and messages aren't loaded. After reload of the page messages appear but when enter new messages - they are not appear until other reload. Important notice: this user logged in several PC and on some of them this bug is reproduced and on the others not. The same issue can happen with a visitor of website too.
At that time in logs there is error:
odoo.sql_db: bad query: UPDATE "bus_presence" SET "last_poll"='2021-02-10 15:12:23' WHERE id IN (1)
2021-02-11 11:37:44,858 11808 INFO prod odoo.service.model: SERIALIZATION_FAILURE, retry 1/5 in 0.9900 sec...
ERROR: could not serialize access due to concurrent update
In case with visitor error
ERROR prod odoo.sql_db: bad query: UPDATE "mail_channel_partner" SET "write_uid"=2,"seen_message_id"=849,"fetched_message_id"=849,"write_date"=(now() at time zone 'UTC') WHERE id IN (632)
ERROR: could not serialize access due to concurrent update
2021-02-11 14:29:44,858 11808 INFO prod odoo.service.model: SERIALIZATION_FAILURE, retry 1/5 in 0.9900 sec...
When I go to BusService class I see docstring
User Presence
Its status is 'online', 'away' or 'offline'. This model should be a one2one, but is not
attached to res_users to avoid database concurrence errors. Since the 'update' method is executed
at each poll, if the user have multiple opened tabs, concurrence errors can happend, but are 'muted-logged'.
https://github.com/odoo/odoo/blob/5d9ed8b52b8f771b6f6a04aa4ec3ac7dbc6ffc42/addons/bus/models/bus_presence.py#L14
At the same time person who expiriencing this has JS console bug:
Service website_livechat.livechat_request already defined
My suggestion was that problem that at the same time several people logged in under the same user or that user as operator sends update on bus_presence as well as user sends it as visitor of the site. However when everybody logs out except one person who is experiences this problem - he still has this issue.
I have found the similar issue on github
https://github.com/odoo/odoo/issues/2919
And noticed that this error was muted and just appearing in logs, but because of this issue messages aren't appear in chat window even if it muted. From advice in github I tryed to settle max_cron_threads = 1, but this didn't solved problem completely.
Please advice ways of workaround this problem either by changing config or changing python or javascript code.
Thanks in advance.