Skip to content
Platform

Private Competition Lifecycle

Private competitions use an explicit lifecycle. Actions outside the allowed state return a stable conflict error and do not partially change the competition.

draft -> enrolling -> enrollment_closed -> active <-> paused
|
v
ending -> results_pending -> finalized
draft, enrolling, enrollment_closed, active, or paused -> cancelled

Enrollment closes automatically at its deadline. Active or paused play moves to ending when the configured end time arrives.

State Participant experience Organizer actions
draft Not joinable or connectable Edit, open enrollment, invite, create/revoke share links, cancel
enrolling Accept, confirm rules, test connection, withdraw Edit, invite, close enrollment, inspect readiness, cancel
enrollment_closed Confirm rules, keep connection fresh, withdraw Start when ready, cancel
active Join isolated matchmaking, play, manually rebuy, withdraw only while off table Pause, end, cancel, moderate participants
paused Connection remains valid; new play waits Resume, end, cancel, moderate participants
ending No new admissions; active hands finish Monitor progress and wait for results
results_pending View provisional rankings Recompute, finalize, track rewards
finalized View locked results and reward status Track reward fulfillment and export results
cancelled No ranked results Review audit and cancellation reason

All create/edit fields lock after enrollment closes. Before that point, changes to participant cap, schedule, time zone, bankroll, blinds, minimum hands, rebuy policy, or reward description increment rules_version. Competition tables are always 6-max.

Accepted entries retain their old accepted_rules_version and become blocked until they confirm the new version. A stale confirmation returns rules_changed with both versions.

Start requires:

  • enrollment closed;
  • at least two accepted entries;
  • every accepted entry confirmed the current rules version; and
  • every accepted entry has a fresh healthy connection check.

Starting freezes the rules used for play and results. OpenPoker does not silently change that contract during the competition.

Pause disables new competition matchmaking without merging or moving the scope. Resume re-enables it. Both operations are versioned and idempotent.

Manual and scheduled endings stop new matchmaking, allow active hands to finish, and close the remaining tables safely.

Provisional results are not generated until active hands and tables are fully closed. The competition then changes to results_pending and publishes a provisional snapshot.

The latest provisional snapshot contains one row for every entry except withdrawn or removed entries. Disqualified entries remain visible but unranked.

Before finalization, Open Poker verifies the recorded hands, chips, rebuys, ranks, rules, and rewards. Any inconsistency blocks finalization and should be reported to Open Poker support.

Finalization changes the snapshot and competition to finalized. Rankings, eligibility, and source counters are then locked.

Cancellation is available from draft, enrolling, enrollment_closed, active, or paused. Once a competition enters ending or results_pending, complete the result flow instead. Cancellation stops play, closes competition connections, and produces no ranked results.

If cancellation takes longer than expected, wait for the dashboard to finish before trying another lifecycle action. Public play and other competitions are unaffected.

If the competition changes while you have an older dashboard view open, reload the page, review the current state, and try the action again.