Gamehub
A little more you.

Sign in to save your favorites and make yourself at home.

For developers and publishers
Browse docs Troubleshooting
On this page

Find the failing step.

Try it first

Recover the original operation#

You need Its saved purchase or attempt key, payment ID and exact environment.

  1. Record the current state and verification source.
  2. Match studio, host, game, chain and payer to the original request.
  3. Retry the appropriate read or resume operation, then inspect the result.

Check your result You recover without creating a duplicate charge, grant or deployment.

Keep the payment ID and purchase key. Diagnose the operation that failed before attempting another charge or settlement.

Payment recovery#

SymptomNext action
Server-settle timeout with paymentIdSave error.detail.paymentId and verify that ID. A created/cache result is unconfirmed.
READY health but payment remains createdRead the actual payment. Health measures capabilities, not the success of a particular purchase.
No ID after an interrupted createRetry the same terms and saved idempotency key.
429 / rate limitHonor Retry-After/backoff; do not mint new purchase keys.
Own key says payment not foundCheck studio/environment. The shared demo’s ID is not visible under your own secret.
Own IAP says payoutAddress missingSet the studio wallet using POST /v1/studio/payout.
Degraded chain readMark the read unavailable; never treat cached confirmation as a fresh grant.

Wallet and network checks#

SymptomNext action
USDC visible but test payment failsCheck Base Sepolia USDC first, then testnet ETH; mainnet balances do not fund testnet.
Login shows 8453Align wallet list, signed message and server verification to 84532.
Fallback send changes chainPin chain on every send path, including older buttons.
Nothing to withdrawRead the correct pool/chain and distinguish credited prizes from a completed withdrawal.
Wallet says insufficient funds on entryAlso check RoundNotOpenError, series readiness and the actual entry window.

Pool and operator checks#

SymptomNext action
pool_not_deployedDeploy the prepare transaction, wait for its receipt, then register the mined address.
ownership pendingSign the returned proof with the bound studio admin, then re-register.
Smart-wallet deploy or operator signature failsUse the supported admin/operator EOA path.
Series has created=falseRead the recorded create transaction and series. Do not repeatedly send a new create.
rounds.open refuses an own poolUse epochs.prepareSeries → epochs.enter → operator-signed settlement.
Settlement times outRead the same epoch/round before retrying. A send may already have landed.
Local key file unreadable in DockerFix ownership/access for the process user; do not make it world-readable.

Typed SDK errors#

ErrorInterpretation
InvalidAmountError / MissingFieldErrorCorrect amount or required fields before sending.
ConfigErrorKey/network/RPC/provider configuration mismatch.
AuthErrorInvalid key, forbidden capability or wrong studio.
WalletConnectionError / WalletTimeoutErrorWallet interaction was cancelled or timed out.
InsufficientGasError / PaymentFailedErrorInspect chain funds or transaction failure.
RoundNotOpenError / AlreadyEnteredErrorAdmission state rejected the attempt; inspect the exact round identity.
NothingToWithdrawErrorNo credited balance on the relevant withdrawal path.
ApiErrorInspect error.code and error.detail?.status / error.detail?.code. The SDK does not expose raw service nextAction or requestId fields.

Settlement recovery#

Legacy rounds can return settling after submission. Read the same round instead of making a blind second settle request. Raw HTTP responses may contain recovery hints, but the SDK ApiError exposes HTTP status and service code in detail. Keep the round/payment ID in your own purchase record and reconcile status before retrying. For own pools, preserve the operator-signed payload and reconcile the epoch’s chain state before any resend.

Use the playground’s connection check to see current service capabilities. Do not send keys, private wallet material or full unredacted logs in a support report.

If it did not work#

Keep pending and unknown distinct from authoritative failure. Escalate with IDs and sanitized errors, never secrets.

Try one variation Compare a pending response with an authoritative failed receipt. Explain why only one permits a genuinely new purchase.

Continue with the next guide →