workers/dpo_task.py catches exceptions internally but never calls status.set_failed(), leaving the job stuck in running state in the UI.
workers/dpo_task.py catches exceptions internally but never calls status.set_failed(), leaving the job stuck in running state in the UI.