Эх сурвалжийг харах

portal: send bridge error on ThreadUserIdDoesNotExist

Signed-off-by: Sumner Evans <sumner@beeper.com>
Co-authored-by: Tulir Asokan <tulir@maunium.net>
Sumner Evans 2 жил өмнө
parent
commit
f3f74090b7

+ 9 - 0
mautrix_instagram/portal.py

@@ -98,6 +98,7 @@ from mautrix.types import (
     VideoInfo,
 )
 from mautrix.util import background_task, ffmpeg
+from mautrix.util.bridge_state import BridgeStateEvent
 from mautrix.util.message_send_checkpoint import MessageSendCheckpointStatus
 
 from . import formatter as fmt, matrix as m, puppet as p, user as u
@@ -652,6 +653,14 @@ class Portal(DBPortal, BasePortal):
         self.log.trace(f"Got response to message send {request_id}: {resp}")
         if resp.status != "ok" or not resp.payload:
             self.log.warning(f"Failed to handle {event_id}: {resp}")
+            if resp.exception == "ThreadUserIdDoesNotExist":
+                await orig_sender.send_bridge_notice(
+                    f"Got fatal message send error: {e}",
+                    important=True,
+                    state_event=BridgeStateEvent.UNKNOWN_ERROR,
+                    error_code="ig-thread-user-id-does-not-exist",
+                    error_message=resp.error_message,
+                )
             raise Exception(f"Sending message failed: {resp.error_message}")
         else:
             self._msgid_dedup.appendleft(resp.payload.item_id)