Skip to content

Troubleshooting

Error Codes

In order to reduce gas usage and code size, /spark-protocol contracts return numbered errors. If you are making calls to the protocol and receive numbered errors, you can use the reference below to know what is the error. Alternatively, you can also find what the numbers represent by checking the Errors.sol

Reference Guide

Error codes are returned as string.

ERROR CODE (string)ERROR NAMEERROR DESCRIPTION
1CALLER_NOT_POOL_ADMINThe caller of the function is not a pool admin
2CALLER_NOT_EMERGENCY_ADMINThe caller of the function is not an emergency admin
3CALLER_NOT_POOL_OR_EMERGENCY_ADMINThe caller of the function is not a pool or emergency admin
4CALLER_NOT_RISK_OR_POOL_ADMINThe caller of the function is not a risk or pool admin
5CALLER_NOT_ASSET_LISTING_OR_POOL_ADMINThe caller of the function is not an asset listing or pool admin
6CALLER_NOT_BRIDGEThe caller of the function is not a bridge
7ADDRESSES_PROVIDER_NOT_REGISTEREDPool addresses provider is not registered
8INVALID_ADDRESSES_PROVIDER_IDInvalid id for the pool addresses provider
9NOT_CONTRACTAddress is not a contract
10CALLER_NOT_POOL_CONFIGURATORThe caller of the function is not the pool configurator
11CALLER_NOT_ATOKENThe caller of the function is not an SpToken
12INVALID_ADDRESSES_PROVIDERThe address of the pool addresses provider is invalid
13INVALID_FLASHLOAN_EXECUTOR_RETURNInvalid return value of the flashloan executor function
14RESERVE_ALREADY_ADDEDReserve has already been added to reserve list
15NO_MORE_RESERVES_ALLOWEDMaximum amount of reserves in the pool reached
16EMODE_CATEGORY_RESERVEDZero eMode category is reserved for volatile heterogeneous assets
17INVALID_EMODE_CATEGORY_ASSIGNMENTInvalid eMode category assignment to asset
18RESERVE_LIQUIDITY_NOT_ZEROThe liquidity of the reserve needs to be 0
19FLASHLOAN_PREMIUM_INVALIDInvalid flashloan premium
20INVALID_RESERVE_PARAMSInvalid risk parameters for the reserve
21INVALID_EMODE_CATEGORY_PARAMSInvalid risk parameters for the eMode category
22BRIDGE_PROTOCOL_FEE_INVALIDInvalid bridge protocol fee
23CALLER_MUST_BE_POOLThe caller of this function must be a pool
24INVALID_MINT_AMOUNTInvalid amount to mint
25INVALID_BURN_AMOUNTInvalid amount to burn
26INVALID_AMOUNTAmount must be greater than 0
27RESERVE_INACTIVEAction requires an active reserve
28RESERVE_FROZENAction cannot be performed because the reserve is frozen
29RESERVE_PAUSEDAction cannot be performed because the reserve is paused
30BORROWING_NOT_ENABLEDBorrowing is not enabled
31STABLE_BORROWING_NOT_ENABLEDStable borrowing is not enabled
32NOT_ENOUGH_AVAILABLE_USER_BALANCEUser cannot withdraw more than the available balance
33INVALID_INTEREST_RATE_MODE_SELECTEDInvalid interest rate mode selected
34COLLATERAL_BALANCE_IS_ZEROThe collateral balance is 0
35HEALTH_FACTOR_LOWER_THAN_LIQUIDATION_THRESHOLDHealth factor is lesser than the liquidation threshold
36COLLATERAL_CANNOT_COVER_NEW_BORROWThere is not enough collateral to cover a new borrow
37COLLATERAL_SAME_AS_BORROWING_CURRENCYCollateral is (mostly) the same currency that is being borrowed
38AMOUNT_BIGGER_THAN_MAX_LOAN_SIZE_STABLEThe requested amount is greater than the max loan size in stable rate mode
39NO_DEBT_OF_SELECTED_TYPEFor repayment of a specific type of debt, the user needs to have debt that type
40NO_EXPLICIT_AMOUNT_TO_REPAY_ON_BEHALFTo repay on behalf of a user an explicit amount to repay is needed
41NO_OUTSTANDING_STABLE_DEBTUser does not have outstanding stable rate debt on this reserve
42NO_OUTSTANDING_VARIABLE_DEBTUser does not have outstanding variable rate debt on this reserve
43UNDERLYING_BALANCE_ZEROThe underlying balance needs to be greater than 0
44INTEREST_RATE_REBALANCE_CONDITIONS_NOT_METInterest rate rebalance conditions were not met
45HEALTH_FACTOR_NOT_BELOW_THRESHOLDHealth factor is not below the threshold
46COLLATERAL_CANNOT_BE_LIQUIDATEDThe collateral chosen cannot be liquidated
47SPECIFIED_CURRENCY_NOT_BORROWED_BY_USERUser did not borrow the specified currency
48SAME_BLOCK_BORROW_REPAYBorrow and repay in same block is not allowed
49INCONSISTENT_FLASHLOAN_PARAMSInconsistent flashloan parameters
50BORROW_CAP_EXCEEDEDBorrow cap is exceeded
51SUPPLY_CAP_EXCEEDEDSupply cap is exceeded
52UNBACKED_MINT_CAP_EXCEEDEDUnbacked mint cap is exceeded
53DEBT_CEILING_EXCEEDEDDebt ceiling is exceeded
54ATOKEN_SUPPLY_NOT_ZEROSpToken supply is not zero
55STABLE_DEBT_NOT_ZEROStable debt supply is not zero
56VARIABLE_DEBT_SUPPLY_NOT_ZEROVariable debt supply is not zero
57LTV_VALIDATION_FAILEDLtv validation failed
58INCONSISTENT_EMODE_CATEGORYInconsistent eMode category
59PRICE_ORACLE_SENTINEL_CHECK_FAILEDPrice oracle sentinel validation failed
60ASSET_NOT_BORROWABLE_IN_ISOLATIONAsset is not borrowable in isolation mode
61RESERVE_ALREADY_INITIALIZEDReserve has already been initialized
62USER_IN_ISOLATION_MODEUser is in isolation mode
63INVALID_LTVInvalid ltv parameter for the reserve
64INVALID_LIQ_THRESHOLDInvalid liquidity threshold parameter for the reserve
65INVALID_LIQ_BONUSInvalid liquidity bonus parameter for the reserve
66INVALID_DECIMALSInvalid decimals parameter of the underlying asset of the reserve
67INVALID_RESERVE_FACTORInvalid reserve factor parameter for the reserve
68INVALID_BORROW_CAPInvalid borrow cap for the reserve
69INVALID_SUPPLY_CAPInvalid supply cap for the reserve
70INVALID_LIQUIDATION_PROTOCOL_FEEInvalid liquidation protocol fee for the reserve
71INVALID_EMODE_CATEGORYInvalid eMode category for the reserve
72INVALID_UNBACKED_MINT_CAPInvalid unbacked mint cap for the reserve
73INVALID_DEBT_CEILINGInvalid debt ceiling for the reserve
74INVALID_RESERVE_INDEXInvalid reserve index
75ACL_ADMIN_CANNOT_BE_ZEROACL admin cannot be set to the zero address
76INCONSISTENT_PARAMS_LENGTHArray parameters that should be equal length are not
77ZERO_ADDRESS_NOT_VALIDZero address not valid
78INVALID_EXPIRATIONInvalid expiration
79INVALID_SIGNATUREInvalid signature
80OPERATION_NOT_SUPPORTEDOperation not supported
81DEBT_CEILING_NOT_ZERODebt ceiling is not zero
82ASSET_NOT_LISTEDAsset is not listed
83INVALID_OPTIMAL_USAGE_RATIOInvalid optimal usage ratio
84INVALID_OPTIMAL_STABLE_TO_TOTAL_DEBT_RATIOInvalid optimal stable to total debt ratio
85UNDERLYING_CANNOT_BE_RESCUEDThe underlying asset cannot be rescued
86ADDRESSES_PROVIDER_ALREADY_ADDEDReserve has already been added to reserve list
87POOL_ADDRESSES_DO_NOT_MATCHThe token implementation pool address and the pool address provided by the initializing pool do not match
88STABLE_BORROWING_ENABLEDStable borrowing is enabled
89SILOED_BORROWING_VIOLATIONUser is trying to borrow multiple assets including a siloed one
90RESERVE_DEBT_NOT_ZERO// the total debt of the reserve needs to be 0