mautrix / telegram

A Matrix-Telegram hybrid puppeting/relaybot bridge
https://matrix.to/#/#telegram:maunium.net
GNU Affero General Public License v3.0
1.3k stars 172 forks source link

Error thrown when trying to backfill #888

Open ghost opened 1 year ago

ghost commented 1 year ago

Cannot backfill bridged rooms. Telegram's user puppet is replying with an error message.

Installation method: virtualenv OS: Fedora 37 Server software: Synapse 1.75.0 Bridge version: 0.12.2 Database: Postgres Using E2EE: No

Error message / logs:

Traceback (most recent call last):
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 580, in ensure_joined
    await self.join_room(room_id, max_retries=0)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 127, in wrapper
    return await __method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/client/store_updater.py", line 62, in join_room
    room_id = await super().join_room(
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/client/api/rooms.py", line 335, in join_room
    content = await self.api.request(
              ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/api.py", line 401, in request
    resp_data, resp = await self._send(
                      ^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/api.py", line 256, in _send
    raise make_request_error(
mautrix.errors.request.MForbidden: You are not invited to this room.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 580, in ensure_joined
    await self.join_room(room_id, max_retries=0)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 127, in wrapper
    return await __method(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/client/store_updater.py", line 62, in join_room
    room_id = await super().join_room(
              ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/client/api/rooms.py", line 335, in join_room
    content = await self.api.request(
              ^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/api.py", line 401, in request
    resp_data, resp = await self._send(
                      ^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/api.py", line 256, in _send
    raise make_request_error(
mautrix.errors.request.MForbidden: You are not invited to this room.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/bridge/commands/handler.py", line 491, in handle
    await self._run_handler(handler, evt)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/commands/handler.py", line 192, in _run_handler
    return await handler(evt)
           ^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/bridge/commands/handler.py", line 340, in __call__
    return await self._handler(evt)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/commands/telegram/misc.py", line 451, in backfill
    output = await portal.forward_backfill(evt.sender, initial=False, override_limit=limit)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/portal.py", line 2726, in forward_backfill
    output = await self.backfill(
             ^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/portal.py", line 2744, in backfill
    return await self._locked_backfill(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/portal.py", line 2799, in _locked_backfill
    insertion_id, event_count, message_count, lowest_id = await self._backfill_messages(
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/portal.py", line 3003, in _backfill_messages
    converted, intent = await self._convert_batch_msg(source, client, msg, add_member)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/portal.py", line 2893, in _convert_batch_msg
    await add_member(intent, sender.displayname, sender.avatar_url)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix_telegram/portal.py", line 2960, in add_member
    await intent.ensure_joined(self.mxid)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 586, in ensure_joined
    await bot.invite_user(room_id, self.mxid)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 140, in wrapper
    await __self.ensure_joined(room_id)
  File "/opt/mautrix-telegram/lib/python3.11/site-packages/mautrix/appservice/api/intent.py", line 584, in ensure_joined
    raise IntentError(f"Failed to join room {room_id} as {self.mxid}") from e
mautrix.errors.base.IntentError: Failed to join room !SbWcpQIHDesbLFvPyX:noevil.pl as @telegrambot:noevil.pl
jannis3005 commented 1 year ago

same error here :) (but using E2EE)

knightpp commented 6 months ago

The same error. Tried Dendrite 0.13.6 and Synapse 1.101

abryant commented 3 months ago

I got this error while trying to backfill a private DM without double-puppeting enabled - the error occurred when mautrix-telegram tried to add telegrambot to the DM, which I think it was doing so that it could try to add the puppet of my own telegram user to the DM.

A workaround was to invite the puppeted user into a group with telegrambot, and it would then invite the puppet of my own telegram user for the backfill, but the better solution was to enable double-puppeting before backfill.

fkwp commented 3 months ago

+1 I am also suffering from the issue. On my end I am running the latest bridge version and double-puppeting is enabled by default. Also it that case the bridge failed adding the telegrambot mxid...