mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-26 10:26:26 +01:00
The retry loop re-issued the request on any 409 while the issue was still assigned to the acting agent, which could mask genuine lifecycle rejections (paused project, unresolved blockers, or a non-participant's "checked out by another agent") behind a transient-looking retry. Match on the response body instead of the bare status: only "Issue run ownership conflict" (a lost PATCH run-lock race) and "Issue checkout conflict" (a lost checkout race) are retried under the winning run id. Every other 409, and the missing-comment 400, is returned untouched so the negative paths keep failing for the right reason. Co-authored-by: Paperclip <noreply@paperclip.ing>