diff --git a/job_controller/jobs/media_process_scheduler/job.py b/job_controller/jobs/media_process_scheduler/job.py
index 3509ed76f8dea961c4448e7acd81cbcb6a9357a3..d6b63e9da1710413a4db510ee2fc4123c677a28b 100644
--- a/job_controller/jobs/media_process_scheduler/job.py
+++ b/job_controller/jobs/media_process_scheduler/job.py
@@ -108,8 +108,6 @@ class ProcessScheduler:
         if self._process.publish_wait_for_full_process and missing_targets:
             return
         
-        publish_media_to_delete_due_to_metadata_conflicts = []
-        
         # Publish new media
         for target_id in self._process.publish_target_ids:
             if target_id not in self._produced_media:
@@ -165,6 +163,10 @@ class ProcessScheduler:
                     f"Publishing {target_id} (metadata {new_metadata.id}) by creating a "
                     f"new publish medium")
         
+        # Lecture doesn't know about the new publish media and that relationship is readonly. So we do a refresh.
+        self._session.flush()
+        self._session.refresh(self._lecture, ["publish_media"])
+        
         # Delete old publish media
         for publish_medium in self._lecture.publish_media:
             assert isinstance(publish_medium.medium_metadata, MediumMetadata)