瀏覽代碼

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 年之前
父節點
當前提交
f3f74090b7
共有 1 個文件被更改,包括 9 次插入0 次删除
  1. 9 0
      mautrix_instagram/portal.py

+ 9 - 0
mautrix_instagram/portal.py

@@ -98,6 +98,7 @@ from mautrix.types import (
     VideoInfo,
     VideoInfo,
 )
 )
 from mautrix.util import background_task, ffmpeg
 from mautrix.util import background_task, ffmpeg
+from mautrix.util.bridge_state import BridgeStateEvent
 from mautrix.util.message_send_checkpoint import MessageSendCheckpointStatus
 from mautrix.util.message_send_checkpoint import MessageSendCheckpointStatus
 
 
 from . import formatter as fmt, matrix as m, puppet as p, user as u
 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}")
         self.log.trace(f"Got response to message send {request_id}: {resp}")
         if resp.status != "ok" or not resp.payload:
         if resp.status != "ok" or not resp.payload:
             self.log.warning(f"Failed to handle {event_id}: {resp}")
             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}")
             raise Exception(f"Sending message failed: {resp.error_message}")
         else:
         else:
             self._msgid_dedup.appendleft(resp.payload.item_id)
             self._msgid_dedup.appendleft(resp.payload.item_id)