telegram
telegram copied to clipboard
UniqueViolationError leads to messages being redacted immediately on Matrix
I'm running v0.11.2 of this bridge in Docker.
Today, I noticed that messages from Telegram are being bridged to Matrix, but then are immediately redacted. Checking the logs, I found multiple appearances of errors like this
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: [[email protected]] UniqueViolationError while saving message mapping. This might mean that an update was handled after it left the dedup cache queue. You can try enabling bridge.deduplicat
ion.pre_db_check in the config.
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: Traceback (most recent call last):
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/mautrix_telegram/portal.py", line 3180, in handle_telegram_message
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: await dbm.insert()
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/mautrix_telegram/db/message.py", line 168, in insert
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: await self.db.execute(q, *self._values)
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/mautrix/util/async_db/database.py", line 96, in execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: return await conn.execute(query, *args, timeout=timeout)
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/mautrix/util/async_db/connection.py", line 35, in wrapper
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: ret = await func(self, arg, *args, **kwargs)
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/mautrix/util/async_db/connection.py", line 68, in execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: return await self.wrapped.execute(query, *args, timeout=timeout)
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/asyncpg/connection.py", line 320, in execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: _, status, _ = await self._execute(
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/asyncpg/connection.py", line 1659, in _execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: result, _ = await self.__execute(
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/asyncpg/connection.py", line 1684, in __execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: return await self._do_execute(
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "/usr/lib/python3.9/site-packages/asyncpg/connection.py", line 1731, in _do_execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: result = await executor(stmt, None)
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: File "asyncpg/protocol/protocol.pyx", line 201, in bind_execute
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: asyncpg.exceptions.UniqueViolationError: duplicate key value violates unique constraint "_message_temp_pkey"
Apr 11 14:20:48 matrix matrix-mautrix-telegram[2587868]: DETAIL: Key (tgid, tg_space, edit_index)=(1846, 1225320943, 0) already exists.
The config option from the error message seems to have been removed in https://github.com/mautrix/telegram/commit/d108ac5d949f06575301658218cb35295e9878b9, so I'm a bit confused. What does the error mean, and how can I ensure that Telegram messages are properly bridged?