The organizer recovery action returns HTTP 400 for a participant range that failed before any VM was created. The recovery path asks the model-access selector to resolve a failed range, which it rejects before the rebuild/retry can start. The organizer can use normal destroy-then-provision as a fallback, but that is slower and defeats the advertised recovery control during event launches.
Allow recovery of a failed pre-VM range without treating its failed instance as a live model-access target. Preserve admission and grant authorization for the replacement, maintain the participant-to-range assignment invariant, and keep existing ready ranges untouched. Add a regression test for a failed range with no provider resources and a successful retry through the organizer recovery action.
The organizer recovery action returns HTTP 400 for a participant range that failed before any VM was created. The recovery path asks the model-access selector to resolve a failed range, which it rejects before the rebuild/retry can start. The organizer can use normal destroy-then-provision as a fallback, but that is slower and defeats the advertised recovery control during event launches.
Allow recovery of a failed pre-VM range without treating its failed instance as a live model-access target. Preserve admission and grant authorization for the replacement, maintain the participant-to-range assignment invariant, and keep existing ready ranges untouched. Add a regression test for a failed range with no provider resources and a successful retry through the organizer recovery action.