diff --git a/native/input/input-state-container.react.js b/native/input/input-state-container.react.js
--- a/native/input/input-state-container.react.js
+++ b/native/input/input-state-container.react.js
@@ -614,11 +614,13 @@
       return result;
     } catch (e) {
       const exceptionMessage = getMessageForException(e) ?? '';
-      throw new SendMessageError(
+      const error = new SendMessageError(
         `Exception when sending text message: ${exceptionMessage}`,
         messageInfo.localID ?? '',
         messageInfo.threadID,
       );
+      error.failedOutboundP2PMessageIDs = e.failedOutboundP2PMessageIDs;
+      throw error;
     }
   }
 
diff --git a/web/input/input-state-container.react.js b/web/input/input-state-container.react.js
--- a/web/input/input-state-container.react.js
+++ b/web/input/input-state-container.react.js
@@ -1386,11 +1386,13 @@
       return result;
     } catch (e) {
       const exceptionMessage = getMessageForException(e) ?? '';
-      throw new SendMessageError(
+      const error = new SendMessageError(
         `Exception while sending text message: ${exceptionMessage}`,
         messageInfo.localID ?? '',
         messageInfo.threadID,
       );
+      error.failedOutboundP2PMessageIDs = e.failedOutboundP2PMessageIDs;
+      throw error;
     }
   }