init_policy, when the supplied pool is not at the derived address, is not owned by the pinned LaunchLab program, is too short, carries the wrong discriminator, or names different mints
PoolCreatorNotPolicy
the LaunchLab pool does not name this policy as its creator, so the launch's fees would be paid elsewhere
init_policy, when the pool is genuine but its creator is not this policy's address
Both exist so a policy cannot be created against a fee stream it will never receive. See how a launch works.
Both of these are new as of 2026-09-23, and both exist because a forwarded venue instruction is chosen by the caller. They are the error codes of the two security fixes described on the safety model.
Error
Message
Raised by
NotTheClaimInstruction
claim_fees may only forward LaunchLab's claim_creator_fee, which takes no arguments
claim_fees, when the forwarded data is not exactly the 8 byte claim_creator_fee discriminator. Not a prefix match: appended bytes are refused too.
VenueSpentEscrow
a claim may only credit the escrows, and the forwarded venue instruction spent one of them
claim_fees, when either escrow is lower after the call than before it. A claim credits; it never spends.
There is no equivalent pair for compound_lp or buyback_and_burn, because those two withhold the signature instead: each signs as an authority that owns only its own staged balance, so there is nothing else for a forwarded instruction to reach.
model is not in the registry at the id recorded on chain
init_policy and set_policy in Agent mode
ModelDisabled
model is not currently enabled
init_policy and set_policy in Agent mode
NameTooLong
name is too long
create_origin, register_model
ProviderTooLong
provider name is too long
register_model
Overflow used to be reused for a bound check, and is not any more
compound_lp once returned Overflow when the spend exceeded the caller-supplied max_in, which was a bound violation wearing an arithmetic error's message. That argument is gone entirely, so the message is now accurate everywhere it appears.
A perps or options policy was created below risk 80. The gate is in register_venue_account, not init_policy, so it fails later than expected.
Raise the risk with set_policy, if the policy is not locked. A locked policy below the threshold can never register that venue.
VenueSetIncomplete
A money path was called without all venue accounts, or with them out of order.
Supply exactly venue_count * 2 remaining accounts, sorted by token account address ascending, with no duplicates.
StaleRemoteEquity
The attestor has stopped, or its last report is older than max_remote_staleness, which is 120 seconds on this deployment.
Post a fresh attestation. This is intended behaviour: it freezes funding rather than letting money leave against a number nobody checked.
NothingToDo
The instruction had no work. A claim that moved nothing, an empty escrow, equity at or below the high water mark.
Usually nothing. On claim_fees against a StonkFun launch it is expected and permanent: that launch type pays by forwarding into the escrow rather than by filling a vault to claim, so there is never anything to claim. Call route instead. See what is not built yet.