Developers
Errors
Every program error, what it means and what to do about it.
When the program refuses a transaction, it returns a custom error code. Wallets and explorers usually show it in hexadecimal, as in custom program error: 0x1777. The app turns the common ones into a sentence; this is the full list.
| Code | Name | Meaning |
|---|---|---|
| 60000x1770 | Arithmetic | Checked arithmetic limit exceeded. |
| 60010x1771 | Configuration | Invalid immutable market configuration. |
| 60020x1772 | InvalidMint | Unsupported token mint or decimals. |
| 60030x1773 | Amount | That amount is too small or outside the program's limits.Amount is zero, too small or exceeds limits |
| 60040x1774 | Slippage | The bands moved before the transaction landed. Review the new numbers and try again.Slippage limit exceeded |
| 60050x1775 | Liquidity | The pool does not have that much cash available right now.Insufficient pool cash; outstanding debt is not withdrawable |
| 60060x1776 | PoolInsolvent | This pool has no remaining value to deposit into.Pool has no remaining lender NAV |
| 60070x1777 | Health | That borrow is above what this collateral and range allow at the current price.Insufficient discounted collateral for borrowing |
| 60080x1778 | HealthyLoan | Loan is healthy. |
| 60090x1779 | BandRange | There is no room in the market's band grid below the current price.No safe range in the configured geometric band grid |
| 60100x177a | OccupiedBand | Part of that range still holds dollars from an earlier fall, and new collateral cannot enter it. Try a different number of bands.New collateral cannot enter a converted band |
| 60110x177b | Invariant | Accounting invariant violated. |
| 60120x177c | SessionClosed | Borrowing against this stock is closed outside its trading session.xStock borrowing session is closed or its calendar is expired |
| 60130x177d | OracleOwner | Unexpected oracle account owner. |
| 60140x177e | OracleFormat | Unexpected Pyth account discriminator or layout. |
| 60150x177f | OracleVerification | Pyth guardian verification must be Full. |
| 60160x1780 | OracleFeed | Unexpected oracle feed identifier. |
| 60170x1781 | OraclePrice | Oracle price or exponent is invalid. |
| 60180x1782 | OracleStale | The oracle price is too old. Wait for a fresh update and try again.Oracle update is stale or from the future |
| 60190x1783 | OracleRollback | The oracle update is older than one the market already used. Try again in a moment.Oracle publish time or slot moved backwards |
| 60200x1784 | OracleConfidence | The oracle is too uncertain right now to price the loan.Oracle confidence exceeds the market limit |
| 60210x1785 | OracleGap | The price moved too far from the band grid for a band trade.Oracle gap exceeds the bounded AMM ratio; use liquidation backstop |
| 60220x1786 | Clock | Clock moved backwards. |
| 60230x1787 | CollateralState | The collateral's issuer settings changed and need a sync before borrowing.Collateral extensions, issuer permissions or corporate-action price alignment are invalid |
| 60240x1788 | StakeTooSmall | Stake is below the session signer minimum. |
| 60250x1789 | StakeBound | Stake backs a session role or is within 30 days of its last one. |
| 60260x178a | StakeNotBound | Only a stake that backs a role, or did in the last 30 days, can be burned. |
| 60270x178b | RoleOccupied | The market already has a session signer. |
| 60280x178c | NotSessionSigner | Signer is not this market's session signer. |
Errors that are not Taper's
Some failures come from Solana or the token programs, not from Taper:
- Insufficient funds or lamports. The wallet lacks the SOL for fees or rent.
- Token error 0x1. The wallet holds less of a token than the transaction moves.
- Blockhash not found, or block height exceeded. The transaction expired before it landed. Sign it again.
- Computational budget exceeded. A transaction that crosses many bands needs more compute. The app and SDK request 1.4 million units.