fix(multiplayer): fence client queue cancellation states

This commit is contained in:
Josh Creek
2026-09-03 00:15:41 +01:00
parent 1976c6eac6
commit a15368ed29
6 changed files with 75 additions and 6 deletions
+3
View File
@@ -131,6 +131,9 @@ func (q *Queue) Cancel(playerID, ticketID, idempotencyKey string, expectedRevisi
if ticket.Revision != expectedRevision {
return QueueTicket{}, ErrStaleRevision
}
if ticket.State != Queued && ticket.State != Proposed {
return QueueTicket{}, fmt.Errorf("%w: cancel in %s", ErrConflict, ticket.State)
}
if idempotencyKey == "" {
return QueueTicket{}, fmt.Errorf("%w: empty cancel key", ErrConflict)
}