diff --git a/lib/shared/dm-ops/change-thread-settings-spec.js b/lib/shared/dm-ops/change-thread-settings-spec.js
--- a/lib/shared/dm-ops/change-thread-settings-spec.js
+++ b/lib/shared/dm-ops/change-thread-settings-spec.js
@@ -6,7 +6,6 @@
 import type {
   DMOperationSpec,
   ProcessDMOperationUtilities,
-  ProcessingPossibilityCheckResult,
 } from './dm-op-spec.js';
 import {
   type DMBlobOperation,
@@ -200,41 +199,6 @@
       dmOperation: DMChangeThreadSettingsOperation,
       utilities: ProcessDMOperationUtilities,
     ) => {
-      const { fieldNameToMessageData } =
-        createChangeSettingsMessageDatasAndUpdate(dmOperation);
-      const messageIDConflictCheckPromises: $ReadOnlyArray<
-        Promise<ProcessingPossibilityCheckResult>,
-      > = values(fieldNameToMessageData).map(async ({ rawMessageInfo }) => {
-        if (!rawMessageInfo.id) {
-          return { isProcessingPossible: true };
-        }
-        const messageID = rawMessageInfo.id;
-        const message = await utilities.fetchMessage(messageID);
-        if (message) {
-          console.log(
-            `Discarded a ${dmOperation.type} operation because ` +
-              `message with the same ID ${messageID} already exists ` +
-              'in the store',
-          );
-          return {
-            isProcessingPossible: false,
-            reason: {
-              type: 'invalid',
-            },
-          };
-        }
-        return { isProcessingPossible: true };
-      });
-
-      const messageIDConflictCheckResults = await Promise.all(
-        messageIDConflictCheckPromises,
-      );
-      for (const result of messageIDConflictCheckResults) {
-        if (!result.isProcessingPossible) {
-          return result;
-        }
-      }
-
       if (!utilities.threadInfos[dmOperation.threadID]) {
         return {
           isProcessingPossible: false,
diff --git a/lib/shared/dm-ops/create-sidebar-spec.js b/lib/shared/dm-ops/create-sidebar-spec.js
--- a/lib/shared/dm-ops/create-sidebar-spec.js
+++ b/lib/shared/dm-ops/create-sidebar-spec.js
@@ -205,42 +205,9 @@
         };
       }
 
-      const [createSidebarMessage, sidebarSourceMessage, sourceMessage] =
-        await Promise.all(
-          [
-            dmOperation.newCreateSidebarMessageID,
-            dmOperation.newSidebarSourceMessageID,
-            dmOperation.sourceMessageID,
-          ].map(utilities.fetchMessage),
-        );
-
-      if (createSidebarMessage) {
-        console.log(
-          `Discarded a ${dmOperation.type} operation because ` +
-            `message with the same ID ${dmOperation.newCreateSidebarMessageID} ` +
-            'already exists in the store',
-        );
-        return {
-          isProcessingPossible: false,
-          reason: {
-            type: 'invalid',
-          },
-        };
-      }
-
-      if (sidebarSourceMessage) {
-        console.log(
-          `Discarded a ${dmOperation.type} operation because ` +
-            `message with the same ID ${dmOperation.newSidebarSourceMessageID} ` +
-            'already exists in the store',
-        );
-        return {
-          isProcessingPossible: false,
-          reason: {
-            type: 'invalid',
-          },
-        };
-      }
+      const sourceMessage = await utilities.fetchMessage(
+        dmOperation.sourceMessageID,
+      );
 
       if (!sourceMessage) {
         return {
diff --git a/lib/shared/dm-ops/dm-op-utils.js b/lib/shared/dm-ops/dm-op-utils.js
--- a/lib/shared/dm-ops/dm-op-utils.js
+++ b/lib/shared/dm-ops/dm-op-utils.js
@@ -5,10 +5,7 @@
 import * as React from 'react';
 import uuid from 'uuid';
 
-import {
-  type ProcessDMOperationUtilities,
-  type ProcessingPossibilityCheckResult,
-} from './dm-op-spec.js';
+import { type ProcessDMOperationUtilities } from './dm-op-spec.js';
 import { dmOpSpecs } from './dm-op-specs.js';
 import { useProcessAndSendDMOperation } from './process-dm-ops.js';
 import { useFindUserIdentities } from '../../actions/find-user-identities-actions.js';
@@ -427,35 +424,6 @@
   return newUpdateInfos;
 }
 
-async function checkMessageIDConflict(
-  dmOperation: DMOperation,
-  utilities: ProcessDMOperationUtilities,
-): Promise<ProcessingPossibilityCheckResult> {
-  if (!dmOperation.messageID) {
-    return {
-      isProcessingPossible: true,
-    };
-  }
-  const messageID = dmOperation.messageID;
-  const message = await utilities.fetchMessage(messageID);
-  if (message) {
-    console.log(
-      `Discarded a ${dmOperation.type} operation because ` +
-        `message with the same ID ${messageID} already exists ` +
-        'in the store',
-    );
-    return {
-      isProcessingPossible: false,
-      reason: {
-        type: 'invalid',
-      },
-    };
-  }
-  return {
-    isProcessingPossible: true,
-  };
-}
-
 function useSendDMOperationUtils(): $ReadOnly<{
   ...ProcessDMOperationUtilities,
   viewerID: ?string,
@@ -483,6 +451,5 @@
   useAddDMThreadMembers,
   getCreateThickRawThreadInfoInputFromThreadInfo,
   getThreadUpdatesForNewMessages,
-  checkMessageIDConflict,
   useSendDMOperationUtils,
 };
diff --git a/lib/shared/dm-ops/process-dm-ops.js b/lib/shared/dm-ops/process-dm-ops.js
--- a/lib/shared/dm-ops/process-dm-ops.js
+++ b/lib/shared/dm-ops/process-dm-ops.js
@@ -12,7 +12,6 @@
   dmOperationSpecificationTypes,
   type OutboundComposableDMOperationSpecification,
   getThreadUpdatesForNewMessages,
-  checkMessageIDConflict,
   useSendDMOperationUtils,
 } from './dm-op-utils.js';
 import { useProcessBlobHolders } from '../../actions/holder-actions.js';
@@ -126,15 +125,10 @@
         return;
       }
 
-      const [messageIDConflictCheckResult, processingCheckResult] =
-        await Promise.all([
-          checkMessageIDConflict(dmOp, utilities),
-          dmOpSpecs[dmOp.type].canBeProcessed(dmOp, utilities),
-        ]);
-
-      if (!messageIDConflictCheckResult.isProcessingPossible) {
-        return;
-      }
+      const processingCheckResult = await dmOpSpecs[dmOp.type].canBeProcessed(
+        dmOp,
+        utilities,
+      );
 
       if (!processingCheckResult.isProcessingPossible) {
         if (processingCheckResult.reason.type === 'invalid') {