upstream

Reference

Errors

Every error code, what it means, and what to do.

LookupError (reading a platform)

CodeMeaningWhat to do
bad_targetThe input is not a GitHub, YouTube, Twitch or Kick account.Use a link or platform:name.
not_foundThe platform says that account does not exist.Check the spelling; for YouTube try the channel id.
networkThe request could not be made.Check your connection.
rate_limitedThe platform refused (403 or 429).Wait. GitHub allows 60 requests per hour per IP without a token.
upstreamThe platform answered with something unexpected.Try again; if it persists the platform may have changed.
corsA browser cannot read this platform (YouTube without a key).Add a key in config.js or use the CLI.

VaultError (the vault)

CodeMeaning
bad_configThe vault setup is invalid: missing mint or target, shares not summing to 10000, streamer under 50 percent, launcher not an address, fewer trusted attesters than the threshold, unknown onExpiry.
bad_amountaccrue needs a positive BigInt.
bad_walletNot a valid Solana address.
not_enough_proofFewer valid signatures than the threshold. The message lists why each rejected one failed.
already_boundA wallet is already bound. Use rotate.
not_boundNothing to rotate yet. Use claim.
rotation_pendingA rotation is already waiting.
same_walletThat wallet is already the bound one.
no_rotationThere is nothing to cancel.
bad_signatureThe cancel signature is not from the current wallet.

On-chain program errors

The program returns a custom error number, which web3.js shows as custom program error: 0x3 and programError() in src/chain/client.mjs turns back into the names above. The table is on the On-chain program page. The two layers agree on names: a refusal is not_enough_proof in JS and on chain.

Reasons inside not_enough_proof

When a bundle of signatures falls short, the message says exactly why, per attester (shortened key):

  • unknown attester: not in the trusted list.
  • duplicate attester: the same key twice.
  • signed a different mint / platform / id / wallet / epoch: it was made for something else.
  • attestation is stale: older than 15 minutes.
  • attestation is from the future: more than 60 seconds ahead.
  • signed a different code and bad signature.

You can reproduce each one in the release lab with the checkboxes.