diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/populate.py b/SAS/TMSS/backend/src/tmss/tmssapp/populate.py
index 4a6d83b83492f1e8212489cb98eb85b59762f188..bc42975e45139f6387f7e20e3bbcd9661447f564 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/populate.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/populate.py
@@ -499,46 +499,47 @@ def populate_connectors():
     logger.info("Populating TaskConnectorType's")
     from django.db.utils import IntegrityError
 
-    def create_task_connector_skip_duplicate(**kwargs):
+    def create_task_connector_skip_duplicate(task_template_name:str, **kwargs):
         # wrapper func to silently skip duplicates
-        try:
-            TaskConnectorType.objects.create(**kwargs)
-        except IntegrityError:
-            # skipping duplicate
-            pass
+        for task_template in TaskTemplate.objects.filter(name=task_template_name).all():
+            try:
+                TaskConnectorType.objects.create(task_template=task_template, **kwargs)
+            except IntegrityError:
+                # skipping duplicate
+                pass
 
     # calibrator, target and combined imaging observations
     for task_template_name in ['calibrator observation', 'target observation', 'parallel calibrator target observation']:
         create_task_connector_skip_duplicate(role=Role.objects.get(value=Role.Choices.CORRELATOR.value),
                                          datatype=Datatype.objects.get(value=Datatype.Choices.VISIBILITIES.value),
                                          dataformat=Dataformat.objects.get(value=Dataformat.Choices.MEASUREMENTSET.value),
-                                         task_template=TaskTemplate.objects.get(name=task_template_name),
+                                         task_template_name=task_template_name,
                                          iotype=IOType.objects.get(value=IOType.Choices.OUTPUT.value))
 
     # beamforming observation
     create_task_connector_skip_duplicate(role=Role.objects.get(value=Role.Choices.BEAMFORMER.value),
                                  datatype=Datatype.objects.get(value=Datatype.Choices.TIME_SERIES.value),
                                  dataformat=Dataformat.objects.get(value=Dataformat.Choices.BEAMFORMED.value),
-                                 task_template=TaskTemplate.objects.get(name='beamforming observation'),
+                                 task_template_name='beamforming observation',
                                  iotype=IOType.objects.get(value=IOType.Choices.OUTPUT.value))
 
     # pulsar pipeline
     create_task_connector_skip_duplicate(role=Role.objects.get(value=Role.Choices.BEAMFORMER.value),
                                  datatype=Datatype.objects.get(value=Datatype.Choices.TIME_SERIES.value),
                                  dataformat=Dataformat.objects.get(value=Dataformat.Choices.BEAMFORMED.value),
-                                 task_template=TaskTemplate.objects.get(name='pulsar pipeline'),
+                                 task_template_name='pulsar pipeline',
                                  iotype=IOType.objects.get(value=IOType.Choices.INPUT.value))
 
     create_task_connector_skip_duplicate(role=Role.objects.get(value=Role.Choices.ANY.value),
                                  datatype=Datatype.objects.get(value=Datatype.Choices.QUALITY.value),
                                  dataformat=Dataformat.objects.get(value=Dataformat.Choices.PULP_SUMMARY.value),
-                                 task_template=TaskTemplate.objects.get(name='pulsar pipeline'),
+                                 task_template_name='pulsar pipeline',
                                  iotype=IOType.objects.get(value=IOType.Choices.OUTPUT.value))
 
     create_task_connector_skip_duplicate(role=Role.objects.get(value=Role.Choices.ANY.value),
                                  datatype=Datatype.objects.get(value=Datatype.Choices.PULSAR_PROFILE.value),
                                  dataformat=Dataformat.objects.get(value=Dataformat.Choices.PULP_ANALYSIS.value),
-                                 task_template=TaskTemplate.objects.get(name='pulsar pipeline'),
+                                 task_template_name='pulsar pipeline',
                                  iotype=IOType.objects.get(value=IOType.Choices.OUTPUT.value))
 
     # preprocessing pipeline
@@ -546,7 +547,7 @@ def populate_connectors():
         create_task_connector_skip_duplicate(role=Role.objects.get(value=Role.Choices.ANY.value),
                                          datatype=Datatype.objects.get(value=Datatype.Choices.VISIBILITIES.value),
                                          dataformat=Dataformat.objects.get(value=Dataformat.Choices.MEASUREMENTSET.value),
-                                         task_template=TaskTemplate.objects.get(name='preprocessing pipeline'),
+                                         task_template_name='preprocessing pipeline',
                                          iotype=IOType.objects.get(value=iotype_value))
 
     # Ingest and Cleanup can/should accept all kinds of data.
@@ -554,8 +555,6 @@ def populate_connectors():
     # This would result however in "unrealistic"/non-existing types like: TIME_SERIES-MEASUREMENTSET, or VISIBILITIES-BEAMFORMED, etc, which do not make any sense.
     # So, instead, lets loop over all exising output connectors, and accept those as input.
     for task_template_name in ('ingest', 'cleanup'):
-        task_template = TaskTemplate.objects.get(name=task_template_name)
-
         # loop over all existing output types
         any_role = Role.objects.get(value=Role.Choices.ANY.value)
         for output_connector_type in TaskConnectorType.objects.filter(iotype=IOType.objects.get(value=IOType.Choices.OUTPUT.value)).all():
@@ -564,7 +563,7 @@ def populate_connectors():
                 create_task_connector_skip_duplicate(role=role,
                                                      datatype=output_connector_type.datatype,
                                                      dataformat=output_connector_type.dataformat,
-                                                     task_template=task_template,
+                                                     task_template_name=task_template_name,
                                                      iotype=IOType.objects.get(value=IOType.Choices.INPUT.value))