Playmos
Gamehub
Make yourself at home.

Sign in to your Playmos account.

For developers
and publishers
Developers Troubleshooting
Documentation Troubleshooting

Find the failing step.

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 code, detail, nextAction, requestId and any returned receipt ID.

Settlement recovery#

Legacy rounds can return settling after submission. Read the same round instead of making a blind second settle request. Service error hints such as wait_then_check, retry_same_key and fix_payload distinguish ambiguous sends from invalid inputs. 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.

Keep buildingYour first payment