From 7e9e88de183ff0b39289785739ee6fc84fcedae2 Mon Sep 17 00:00:00 2001 From: jamiepine <32987599+jamiepine@users.noreply.github.com> Date: Sun, 4 Oct 2026 00:17:20 +0000 Subject: [PATCH] fix(history): don't roll back a delete after version files are already unlinked Review follow-up: a rollback after a failed main-audio unlink restored version rows whose files were already removed. Treat a locked main file like the failed-generation sweep does: log and continue, leaving at worst an orphaned audio file rather than rows that point at nothing. --- backend/services/history.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/backend/services/history.py b/backend/services/history.py index a3a3f8ec..448381b5 100644 --- a/backend/services/history.py +++ b/backend/services/history.py @@ -306,8 +306,10 @@ async def delete_generation( try: audio_path.unlink() except OSError: - db.rollback() - raise + # Version files are already gone by now, so rolling back would + # leave rows pointing at missing audio. Mirror the sweep below: + # keep going and leave the locked file as an orphan instead. + logger.warning("Could not delete generation audio %s", audio_path) # Delete from database db.delete(generation)