Retry A Failed Build
What It Does
Recover failed construction through a linked attempt with completed steps carried forward. A call made after the lifecycle move is refused; linked retries carry completed steps. Two callers can both pass the earlier unlocked read before one moves the workspace.
The Flow
When Something Fails
Refuse absent records or inadmissible standing. No retry is created. Reject an illegal lifecycle move. The workspace move can commit without a new attempt. Return the creation error. The workspace can remain provisioning until stranded-workspace repair. Leave start failure to shared reconciliation. A committed retry can have no execution until recovered.
Open Design Questions
The product should close the separate-commit window between lifecycle return and retry creation, and decide how concurrent retry submission is recovered.