diff --git a/mlos_bench/mlos_bench/storage/sql/trial.py b/mlos_bench/mlos_bench/storage/sql/trial.py index e1276c2881..5941d2c358 100644 --- a/mlos_bench/mlos_bench/storage/sql/trial.py +++ b/mlos_bench/mlos_bench/storage/sql/trial.py @@ -116,6 +116,9 @@ def update( metrics = super().update(status, timestamp, metrics) with self._engine.begin() as conn: self._update_status(conn, status, timestamp) + # Use a separate transaction to avoid issues with PostgreSQL's duplicate key + # constraint handling. (See Issue #999). + with self._engine.begin() as conn: try: if status.is_completed(): # Final update of the status and ts_end: