Problem
When the compute_worker PATCHes a submission with status=Scoring, the site re-enqueues the scoring task before committing the new status and outside any transaction. If the broker publish raises (RabbitMQ unreachable, ConnectionError, channel error, broker restart, …), no message ever reaches the compute-worker queue. The DB row is still moved
to Scoring on the next code path, so the submission stays in Scoring forever — no retry, no failover, no cleanup picks it up.
Problem
When the compute_worker PATCHes a submission with
status=Scoring, the site re-enqueues the scoring task before committing the new status and outside any transaction. If the broker publish raises (RabbitMQ unreachable,ConnectionError, channel error, broker restart, …), no message ever reaches thecompute-workerqueue. The DB row is still movedto
Scoringon the next code path, so the submission stays inScoringforever — no retry, no failover, no cleanup picks it up.