> For the complete documentation index, see [llms.txt](https://cetus-1.gitbook.io/cetus-developer-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://cetus-1.gitbook.io/cetus-developer-docs/developer/via-sdk-v2/sdk-modules/cetusprotocol-vaults-sdk/contract-error-codes.md).

# Contract Error Codes

the Cetus smart contract may return the following error codes:

<table><thead><tr><th width="146.078857421875">Module</th><th width="105.186767578125">Error Code</th><th width="236.2479248046875">Description</th><th>Contract Methods</th></tr></thead><tbody><tr><td>vaults::vaults</td><td>1</td><td>Amount out below min limit</td><td>remove</td></tr><tr><td>vaults::vaults</td><td>2</td><td>Position size error</td><td>deposit，remove，reinvest，migrate_liquidity，rebalance，collect_fee，harvest，collect_rewarder，get_position_amounts</td></tr><tr><td>vaults::vaults</td><td>3</td><td>Package version deprecated</td><td>checked_package_version</td></tr><tr><td>vaults::vaults</td><td>4</td><td>Token amount overflow</td><td>deposit</td></tr><tr><td>vaults::vaults</td><td>5</td><td>Token amount is zero</td><td>remove，deposit</td></tr><tr><td>vaults::vaults</td><td>6</td><td>Pool is paused</td><td>take_harvest_asset_by_amount</td></tr><tr><td>vaults::vaults</td><td>7</td><td>Invalid coin type</td><td>migrate_liquidity</td></tr><tr><td>vaults::vaults</td><td>8</td><td>Rebalance add liquidity error</td><td>remove</td></tr><tr><td>vaults::vaults</td><td>9</td><td>Token amount not enough</td><td>remove</td></tr><tr><td>vaults::vaults</td><td>10</td><td>Invalid protocol fee rate</td><td>update_protocol_fee_rate</td></tr><tr><td>vaults::vaults</td><td>11</td><td>No protocol fee claim permission</td><td>check_protocol_fee_claim_role</td></tr><tr><td>vaults::vaults</td><td>12</td><td>No operation manager permission</td><td>check_reinvest_role，check_operation_role</td></tr><tr><td>vaults::vaults</td><td>13</td><td>No pool manager permission</td><td>check_pool_manager_role</td></tr><tr><td>vaults::vaults</td><td>14</td><td>Treasury cap illegal</td><td>create_vault</td></tr><tr><td>vaults::vaults</td><td>15</td><td>Wrong package version</td><td>update_package_version</td></tr><tr><td>vaults::vaults</td><td>16</td><td>Quota reached</td><td>deposit</td></tr><tr><td>vaults::vaults</td><td>17</td><td>Vault not running</td><td>collect_rewarder，harvest，collect_fee，migrate_liquidity，reinvest ，remove，deposit</td></tr><tr><td>vaults::vaults</td><td>18</td><td>Vault not rebalancing</td><td>rebalance</td></tr><tr><td>vaults::vaults</td><td>19</td><td>Quota type name error</td><td>calculate_updated_quota</td></tr><tr><td>vaults::vaults</td><td>20</td><td>Same coin type</td><td>new_pool_key</td></tr><tr><td>vaults::vaults</td><td>21</td><td>Invalid coin type sequence</td><td>add_oracle_pool</td></tr><tr><td>vaults::vaults</td><td>22</td><td>Coin pair existed</td><td>reinvest_harvest_assets，flash_loan ，update_slippage，remove_oracle_pool</td></tr><tr><td>vaults::vaults</td><td>23</td><td>Coin pair non-existed</td><td>flash_loan</td></tr><tr><td>vaults::vaults</td><td>24</td><td>Incorrect flash loan amount</td><td>repay_flash_loan</td></tr><tr><td>vaults::vaults</td><td>25</td><td>Incorrect repay</td><td>flash_loan</td></tr><tr><td>vaults::vaults</td><td>26</td><td>Oracle pool error</td><td>rebalance</td></tr><tr><td>vaults::vaults</td><td>27</td><td>Flashloan count non-zero</td><td>rebalance</td></tr><tr><td>vaults::vaults</td><td>28</td><td>Finish rebalance threshold not match</td><td>rebalance</td></tr><tr><td>vaults::vaults</td><td>29</td><td>Harvest asset not enough</td><td>take_harvest_asset_by_amount</td></tr><tr><td>vaults::vaults</td><td>30</td><td>Invalid vault operation</td><td>reinvest_harvest_assets</td></tr></tbody></table>

###
