diff --git a/containers/backupchecks/src/backend/app/main/routes_settings.py b/containers/backupchecks/src/backend/app/main/routes_settings.py index e2a4038..29e4cb9 100644 --- a/containers/backupchecks/src/backend/app/main/routes_settings.py +++ b/containers/backupchecks/src/backend/app/main/routes_settings.py @@ -197,11 +197,6 @@ def settings_jobs_delete_orphaned(): if run.mail_message_id: mail_message_ids.append(run.mail_message_id) - # Delete related mails permanently (customer is gone) - if mail_message_ids: - mail_count = len(mail_message_ids) - MailMessage.query.filter(MailMessage.id.in_(mail_message_ids)).delete(synchronize_session=False) - # Helper function for safe SQL execution def _safe_execute(stmt, params): try: @@ -252,6 +247,12 @@ def settings_jobs_delete_orphaned(): for job in orphaned_jobs: db.session.delete(job) + # Now delete related mails permanently (customer is gone) + # This must happen AFTER deleting jobs/runs to avoid foreign key constraint violations + if mail_message_ids: + mail_count = len(mail_message_ids) + MailMessage.query.filter(MailMessage.id.in_(mail_message_ids)).delete(synchronize_session=False) + db.session.commit() flash(