Problem
Whenever a client loses the response of POST /api/submissions/ (network timeout, intermittent 5xx, browser/SDK auto-retry), it replays the request.
Every replay creates a brand new Submission row and triggers another Celery run. From the user's side the "initial" submission is invisible (its id was
never returned); from the platform's side we see ghost duplicates that burn quota and worker capacity.
Problem
Whenever a client loses the response of
POST /api/submissions/(network timeout, intermittent 5xx, browser/SDK auto-retry), it replays the request.Every replay creates a brand new
Submissionrow and triggers another Celery run. From the user's side the "initial" submission is invisible (its id wasnever returned); from the platform's side we see ghost duplicates that burn quota and worker capacity.