diff --git a/src/calng/CalibrationManager.py b/src/calng/CalibrationManager.py
index 82eb74cd6ff5ad09222b108a87a45597cacf3df6..7c016419971b20f573c3eb158cf7ed05c72b2020 100644
--- a/src/calng/CalibrationManager.py
+++ b/src/calng/CalibrationManager.py
@@ -1354,6 +1354,14 @@ class CalibrationManager(DeviceClientBase, Device):
                 config
             ))
 
+        # Perform instantation on correction devices first.
+        if not all(await gather(*awaitables)):
+            self._set_status('One or more correction devices failed to '
+                             'instantiate')
+            return
+
+        awaitables.clear()
+
         # Instantiate group matchers with optional bridge enabled.
         for row in self.moduleGroups.value:
             group, server, with_bridge, bridge_port, bridge_pattern = row
@@ -1402,9 +1410,10 @@ class CalibrationManager(DeviceClientBase, Device):
                 config
             ))
 
-        # Perform instantation.
+        # Perform instantation on matcher-like devices second.
         if not all(await gather(*awaitables)):
-            self._set_status('One or more devices failed to instantiate')
+            self._set_status('One or more matcher devices failed to '
+                             'instantiate')
             return
 
         # Force managed DAQ settings.
@@ -1436,7 +1445,7 @@ class CalibrationManager(DeviceClientBase, Device):
 
         if assemblers:
             for remote_key, local_key, _ in self._managed_assembler_keys:
-                await self._set_on_assembler(
+                await self._set_on_assemblers(
                     remote_key, get_property(self, f'managedKeys.{local_key}'))
 
         if corrections: