diff --git a/apps/cli/executables/pexable/conveyor/conveyor/retrieve.py b/apps/cli/executables/pexable/conveyor/conveyor/retrieve.py
index 1007bc9d7abc519faf320d0c7b755e8d772cac2e..dacdf02f0b8ba0702d01eb530c399fccfdc4e1f4 100644
--- a/apps/cli/executables/pexable/conveyor/conveyor/retrieve.py
+++ b/apps/cli/executables/pexable/conveyor/conveyor/retrieve.py
@@ -63,8 +63,8 @@ class RetrievalConveyor(ConveyorIF):
 
         :return:
         """
-        url = f"/workflows/carta/requests/{self.settings['request_id']}/send-do-not-calibrate/{sdm_id}"
-        requests.post(url, json={"fileSetIds": sdm_id})
+        url = f"/workflows/requests/{self.settings['request_id']}/send-do-not-calibrate/{sdm_id}"
+        requests.post(url, json={"sdm_id": sdm_id})
 
     def break_symlinks(self, spool_path: Path, dir_list: List[str]):
         self.logger.info(f"Breaking symlinks between qa2 and spool for directory {spool_path.stem}...")
diff --git a/services/workflow/workflow/server.py b/services/workflow/workflow/server.py
index 15fe644877cfbc443df6ea28dd2bde6344a6fab2..c80f0ac4e891a4a8446c8dc72e4a94610281a15e 100644
--- a/services/workflow/workflow/server.py
+++ b/services/workflow/workflow/server.py
@@ -576,7 +576,7 @@ def main(global_config, **settings):
         # Use this route to send a Do Not Calibrate message to the AAT system
         config.add_route(
             "send_do_not_calibrate",
-            "/workflows/carta/requests/{request_id}/send-do-not-calibrate/{sdm_id}",
+            "/workflows/requests/{request_id}/send-do-not-calibrate/{sdm_id}",
             factory=lookup_request,
         )
 
diff --git a/shared/workspaces/workspaces/workflow/services/workflow_service.py b/shared/workspaces/workspaces/workflow/services/workflow_service.py
index ae94bde18a7ef72c6eca750f34f643301b637262..5d433f2c7e137822b7e4a5348b9f0b047952928e 100644
--- a/shared/workspaces/workspaces/workflow/services/workflow_service.py
+++ b/shared/workspaces/workspaces/workflow/services/workflow_service.py
@@ -223,6 +223,22 @@ class WorkflowService(WorkflowServiceIF):
         carta_url_msg = WorkflowMessageArchitect(request=wf_request, carta_url=carta_url).compose_message("carta_ready")
         self.messenger.send_message(**carta_url_msg)
 
+    def send_do_not_calibrate(self, request_id: int, sdm_id: str):
+        """
+        Tell the archive to set specified SDM to "Do Not Calibrate".
+
+        :param message: message containing key-value pairs
+        :return:
+        """
+        wf_request = self.info.lookup_workflow_request(request_id)
+
+        if wf_request.workflow_name == ArchiveWorkflows.DO_NOT_CALIBRATE.value:
+            logger.info(f"SENDING 'DO NOT CALIBRATE' MESSAGE to AAT for request #{request_id}!")
+            dnc_msg = ArchiveMessageArchitect(
+                routing_key="qa-script.fail", request=request_id, sdm_id=sdm_id
+            ).compose_message("qa_fail")
+            self.archive_messenger.send_message(**dnc_msg)
+
     def execute(self, request: WorkflowRequest):
         """
         Execute a workflow per the supplied parameters.
@@ -676,9 +692,6 @@ class WorkflowMessageHandler:
             elif message["type"] == "delivery" or message["type"] == "ingestion-complete":
                 status = WorkflowRequestState.Complete.name
 
-            elif message["type"] == "qa-fail":
-                self.send_do_not_calibrate(request.workflow_request_id, message["sdm_id"])
-
             else:
                 status = "Unknown"
 
@@ -732,22 +745,6 @@ class WorkflowMessageHandler:
             )
             self.archive_messenger.send_message(**seci_msg)
 
-    def send_do_not_calibrate(self, request_id: int, sdm_id: str):
-        """
-        Tell the archive to set specified SDM to "Do Not Calibrate".
-
-        :param message: message containing key-value pairs
-        :return:
-        """
-        wf_request = self.info.lookup_workflow_request(request_id)
-
-        if wf_request.workflow_name == ArchiveWorkflows.DO_NOT_CALIBRATE.value:
-            logger.info(f"SENDING 'DO NOT CALIBRATE' MESSAGE to AAT for request #{request_id}!")
-            dnc_msg = ArchiveMessageArchitect(
-                routing_key="qa-script.fail", request=request_id, sdm_id=sdm_id
-            ).compose_message("qa_fail")
-            self.archive_messenger.send_message(**dnc_msg)
-
     def clean_remote_workflow(self, request: WorkflowRequest):
         injector = CapoInjector(request)