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
@@ -393,6 +393,9 @@
       this.pendingSidebarCreationMessageLocalIDs.delete(localID);
       return result;
     } catch (e) {
+      if (e instanceof SendMessageError) {
+        throw e;
+      }
       const exceptionMessage = getMessageForException(e) ?? '';
       if (exceptionMessage === 'invalid_csat') {
         void this.props.invalidTokenLogOut();
@@ -613,6 +616,9 @@
       this.pendingSidebarCreationMessageLocalIDs.delete(localID);
       return result;
     } catch (e) {
+      if (e instanceof SendMessageError) {
+        throw e;
+      }
       const exceptionMessage = getMessageForException(e) ?? '';
       throw new SendMessageError(
         `Exception when sending text message: ${exceptionMessage}`,
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
@@ -559,6 +559,9 @@
       });
       return result;
     } catch (e) {
+      if (e instanceof SendMessageError) {
+        throw e;
+      }
       const exceptionMessage = getMessageForException(e) ?? '';
       if (exceptionMessage === 'invalid_csat') {
         void this.props.invalidTokenLogOut();
@@ -1385,6 +1388,9 @@
       this.pendingSidebarCreationMessageLocalIDs.delete(localID);
       return result;
     } catch (e) {
+      if (e instanceof SendMessageError) {
+        throw e;
+      }
       const exceptionMessage = getMessageForException(e) ?? '';
       throw new SendMessageError(
         `Exception while sending text message: ${exceptionMessage}`,