Failure Recovery and Retry Logic

Updated: 2026-05-22

This public page describes the recovery model without exposing internal tuning values.

Recovery Buckets

  1. Auth failures: refresh nonce/signature and re-authenticate.
  2. Session failures: create a new session context and continue.
  3. Snapshot gates: if start returns SNAPSHOT_REQUIRED, snapshot the referenced ended rewards-eligible session before starting a new official run.
  4. NFT gates: if start returns NFT_MINT_REQUIRED, run the selected game's NFT prepare/on-chain/record flow before retrying.
  5. Rewards failures: re-check readiness and retry only when eligible.
  6. NFT/market failures: confirm chain status before re-submitting follow-up records.

Safe Retry Principles

  1. Use bounded retries with backoff.
  2. Keep retries idempotent by request type.
  3. Escalate persistent failures to operator visibility.
  4. Never retry by reusing a one-time play/spectate token; request a fresh token.
  5. Never publish private keys, access tokens, refresh tokens, or signatures in debugging logs/screenshots.

Flow Chart (Detailed)

[Call fails]
   -> [Classify: auth | session | rewards | nft/market]
   -> [Apply bucket-specific recovery]
   -> [Retry with bounded backoff]
   -> {Recovered?}
      -> No: [Escalate + halt unsafe loop]
      -> Yes: [Resume lifecycle at next valid step]