diff --git a/webservice/webservice.py b/webservice/webservice.py
index 2437b07834cd051620004ea341415f926b4d026a..eb539d951a9957fd5e38a9ed8084ec0b5fa19676 100644
--- a/webservice/webservice.py
+++ b/webservice/webservice.py
@@ -1243,17 +1243,33 @@ class ActionsServer:
                 try:
                     prior_request_time = calmeta["runtime-summary"]\
                                             ["pipeline-steps"]["request-time"]
-                    karabo_id = calmeta["calibration-configurations"]["karabo-id"]
+
+                    calargs = calmeta["calibration-configurations"]
+                    karabo_id = calargs["karabo-id"]
+                    karabo_das = {da.split('/')[0] for da in calargs["karabo-da"]}
+                    out_path = Path(calargs["out-folder"])
                 except KeyError:
                     logging.warning("Did not find expected metadata in %s",
                                     calmeta_pth, exc_info=True)
+                    continue
+
+                for karabo_da in karabo_das:
+                    try:
+                        next(out_path.glob(f"*-R*-{karabo_da}-S*.h5"))
+                    except (StopIteration, IndexError):
+                        pass
+                    else:
+                        logging.info(f"Found {karabo_da} output files for "
+                                     f"{karabo_id}, skipping correction re-run")
+                        break
+
                 else:
                     mddirs_by_krb_id.setdefault(karabo_id, []).append(
-                        (calmeta_pth.parent, prior_request_time)
-                    )
+                        (calmeta_pth.parent, prior_request_time))
 
             logging.info("Found %d corrections to re-run for p%s r%s: %s",
-                         len(mddirs_by_krb_id), proposal, runnr, list(mddirs_by_krb_id))
+                         len(mddirs_by_krb_id), proposal, runnr,
+                         list(mddirs_by_krb_id))
 
         except Exception as e:
             msg = Errors.JOB_LAUNCH_FAILED.format('correct', e)