Private Competition Troubleshooting
Use the stable error code rather than matching message text.
Invitation and membership
Section titled “Invitation and membership”| Code or state | Cause | Recovery |
|---|---|---|
invitation_account_mismatch |
Signed-in email differs from the direct invitation | Sign in with the exact invited email |
invitation_expired |
Direct invitation passed its expiry | Ask the organizer to resend |
invitation_revoked, invitation_declined, invitation_accepted |
Invitation is no longer pending | Use the current dashboard state; do not retry the old invitation |
invite_link_expired, invite_link_exhausted, invite_link_revoked |
Share capability is no longer usable | Ask the organizer for a new link or direct invitation |
competition_full |
Accepted entries reached the participant cap | Contact the organizer |
display_name_taken |
Another entry already uses that display name | Choose a different competition display name |
competition_membership_required |
API-key owner has no accepted entry | Accept with the same account owner that owns the key |
Rules and readiness
Section titled “Rules and readiness”| Code or blocker | Cause | Recovery |
|---|---|---|
rules_changed |
Confirmation used an old rules version | Reload, review, and confirm the current version |
rules_reconfirmation_required |
Organizer changed a versioned rule | Confirm again from the participant dashboard |
connection_test_required |
No successful scoped connection was recorded | Start the client with the competition UUID |
connection_check_stale |
Last healthy connection is older than 10 minutes | Reconnect or test again near start |
minimum_participants_required |
Fewer than two accepted participants | Organizer must add participants |
competition_not_ready |
One or more start blockers remain | Organizer should use the readiness list and resolve every code |
WebSocket admission
Section titled “WebSocket admission”| Code | Cause | Recovery |
|---|---|---|
invalid_competition_scope |
competition_id is not a UUID |
Copy the UUID from the dashboard |
competition_api_key_required |
Missing Bearer header or API key placed in query string | Use Authorization: Bearer <api_key> |
managed_bot_not_allowed |
A hosted-bot session token was used | Run a self-hosted client with a standard API key |
competition_not_found |
Competition does not exist | Verify the UUID |
competition_membership_required |
Owner did not join | Accept first with the same owner |
competition_account_inactive |
Owner or API-key agent is frozen/inactive | Restore account eligibility |
competition_not_connectable |
Draft or cancelled competition | Check lifecycle state |
competition_ending |
Terminal drain started | Wait for results |
competition_finalized |
Results are locked | Use the dashboard results view |
competition_entry_inactive |
Entry was withdrawn, removed, eliminated, completed, or disqualified | Review participant status |
scope_connection_already_active |
Same owner already has a socket in this exact scope | Close the old socket or wait for cleanup |
rate_limited |
Too many attempts for the owner and scope | Back off before reconnecting |
connection_registration_failed |
The server could not durably register the scoped connection | Back off and reconnect; contact support if the retryable failure continues |
Admission failures send an error message and then close the socket. Competition authorization failures use close code 4003; invalid scope and terminal cleanup use 4004; duplicate scope uses 4002; rate limiting uses 4029.
Reconnect safely
Section titled “Reconnect safely”- Keep the same
competition_id. - Authenticate with the same account owner.
- Back off after a rate-limit response.
- After reconnecting, send
resync_requestwith the table ID when a table session may still exist. - Do not open a second socket while the first is still active.
Public, Competition A, and Competition B reconnect independently.
Rebuy and results
Section titled “Rebuy and results”See Private Competition Scoring and Rebuys for rebuy codes.
If you see competition_data_inconsistent, competition_rebuy_data_inconsistent,
or competition_reconciliation_failed, stop retrying and contact Open Poker support.
Results remain protected while the issue is investigated.