diff --git a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/feedback.py b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/feedback.py
index fcd2776303446c70bf87d29f918f3376d0362d85..33d199563372f60eb344606ea4c46948bf211795 100644
--- a/SAS/TMSS/backend/src/tmss/tmssapp/adapters/feedback.py
+++ b/SAS/TMSS/backend/src/tmss/tmssapp/adapters/feedback.py
@@ -198,7 +198,8 @@ def pulsar_pipeline_summary_feedback_to_feedback_doc(dp_feedback: dict) -> dict:
 
     feedback_doc = {
         "percentage_written": int(dp_feedback['percentageWritten']),
-        "files": parse_parset_vector(dp_feedback['fileContent'], parameterset.getStringVector),
+        # set of files must be unique, but PULP sends us duplicates 
+        "files": list(set(parse_parset_vector(dp_feedback['fileContent'], parameterset.getStringVector))),
         "target": {
             "coherent": dp_feedback['datatype'] != "SummaryIncoherentStokes"
         }
@@ -223,7 +224,8 @@ def pulsar_pipeline_analysis_feedback_to_feedback_doc(input_dp_feedback_doc: dic
 
     feedback_doc = {
         "percentage_written": int(dp_feedback['percentageWritten']),
-        "files": parse_parset_vector(dp_feedback['fileContent'], parameterset.getStringVector),
+        # set of files must be unique, but PULP sends us duplicates 
+        "files": list(set(parse_parset_vector(dp_feedback['fileContent'], parameterset.getStringVector))),
         "frequency": {
             "subbands": parse_parset_vector(dp_feedback[beam_prefix + 'stationSubbands'], parameterset.getIntVector),
             "central_frequencies": parse_parset_vector(dp_feedback[beam_prefix + 'centralFrequencies'], parameterset.getDoubleVector),