# Contract Error Codes

the Cetus smart contract may return the following error codes:

<table><thead><tr><th width="192.6356201171875">Module</th><th width="59.876708984375">Error Code</th><th width="186.0123291015625">Description</th><th width="377.7413330078125">Contract Methods</th></tr></thead><tbody><tr><td>cetus_clmm::pool</td><td>0</td><td>Amount is incorrect</td><td><p>flash_swap_internal,</p><p>add_liquidity_fix_coin,</p><p>repay_add_liquidity, repay_flash_swap, repay_flash_swap_with_partner</p></td></tr><tr><td>cetus_clmm::pool</td><td>1</td><td>Liquidity overflow</td><td><p>add_liquidity_internal,</p><p>calculate_swap_result</p></td></tr><tr><td>cetus_clmm::pool</td><td>3</td><td>Liquidity is zero</td><td><p>add_liquidity,</p><p>remove_liquidity,</p><p>add_liquidity_internal</p></td></tr><tr><td>cetus_clmm::pool</td><td>4</td><td>Not enough liquidity</td><td>swap_in_pool</td></tr><tr><td>cetus_clmm::pool</td><td>5</td><td>Remainder amount underflow</td><td>check_remainer_amount_sub</td></tr><tr><td>cetus_clmm::pool</td><td>6</td><td>Swap amount in overflow</td><td>update_swap_result</td></tr><tr><td>cetus_clmm::pool</td><td>7</td><td>Swap amount out overflow</td><td>update_swap_result</td></tr><tr><td>cetus_clmm::pool</td><td>8</td><td>Fee amount overflow</td><td>update_swap_result</td></tr><tr><td>cetus_clmm::pool</td><td>9</td><td>Invalid fee rate</td><td>update_fee_rate</td></tr><tr><td>cetus_clmm::pool</td><td>10</td><td>Invalid fixed coin type</td><td>get_liquidity_from_amount</td></tr><tr><td>cetus_clmm::pool</td><td>11</td><td>Wrong sqrt price limit</td><td>flash_swap_internal</td></tr><tr><td>cetus_clmm::pool</td><td>12</td><td>Pool ID is error</td><td>repay_add_liquidity</td></tr><tr><td>cetus_clmm::pool</td><td>13</td><td>Pool is paused</td><td></td></tr><tr><td>cetus_clmm::pool</td><td>14</td><td>Flash swap receipt not match</td><td>repay_flash_swap_with_partner, repay_flash_swap</td></tr><tr><td>cetus_clmm::pool</td><td>16</td><td>Invalid partner ref fee rate</td><td>swap_in_pool</td></tr><tr><td>cetus_clmm::pool</td><td>17</td><td>Reward does not exist</td><td><p>get_position_reward,</p><p>calculate_and_update_reward,</p><p>collect_reward</p></td></tr><tr><td>cetus_clmm::pool</td><td>18</td><td>Amount out is zero</td><td>flash_swap_internal</td></tr><tr><td>cetus_clmm::pool</td><td>19</td><td>Pool position not match</td><td><p>collect_reward,</p><p>add_liquidity,</p><p>add_liquidity_fix_coin,</p><p>remove_liquidity,</p><p>close_position,collect_fee</p></td></tr><tr><td>cetus_clmm::position</td><td>1</td><td>Fee owned overflow</td><td>update_fee_internal</td></tr><tr><td>cetus_clmm::position</td><td>2</td><td>Reward owned overflow</td><td>update_rewards_internal</td></tr><tr><td>cetus_clmm::position</td><td>3</td><td>Points owned overflow</td><td>update_points_internal</td></tr><tr><td>cetus_clmm::position</td><td>5</td><td>Invalid position tick range</td><td>check_position_tick_range</td></tr><tr><td>cetus_clmm::position</td><td>6</td><td>Position does not exist</td><td><p>borrow_mut_position_info，</p><p>fetch_positions，</p><p>borrow_position_info</p></td></tr><tr><td>cetus_clmm::position</td><td>7</td><td>Position is not empty</td><td>close_position</td></tr><tr><td>cetus_clmm::position</td><td>8</td><td>Liquidity change overflow</td><td>increase_liquidity</td></tr><tr><td>cetus_clmm::position</td><td>9</td><td>Liquidity change underflow</td><td>decrease_liquidity</td></tr><tr><td>cetus_clmm::position</td><td>10</td><td>Invalid reward index</td><td>update_and_reset_rewards</td></tr><tr><td>cetus_clmm::rewarder</td><td>1</td><td>Reward slot is full</td><td>add_rewarder</td></tr><tr><td>cetus_clmm::rewarder</td><td>2</td><td>Reward already exists</td><td>add_rewarder</td></tr><tr><td>cetus_clmm::rewarder</td><td>3</td><td>Invalid time</td><td>settle</td></tr><tr><td>cetus_clmm::rewarder</td><td>4</td><td>Reward amount insufficient</td><td>update_emission</td></tr><tr><td>cetus_clmm::rewarder</td><td>5</td><td>Reward does not exist</td><td><p>borrow_mut_rewarder，</p><p>borrow_rewarder</p></td></tr><tr><td>cetus_clmm::tick</td><td>0</td><td>Liquidity overflow</td><td>update_by_liquidity</td></tr><tr><td>cetus_clmm::tick</td><td>1</td><td>Liquidity underflow</td><td><p>update_by_liquidity，</p><p>cross_by_swap</p></td></tr><tr><td>cetus_clmm::tick</td><td>2</td><td>Invalid tick</td><td>tick_score，</td></tr><tr><td>cetus_clmm::tick</td><td>3</td><td>Tick not found</td><td>decrease_liquidity，</td></tr><tr><td>cetus_clmm::pool_creator</td><td>1</td><td>Pool is permission</td><td>create_pool_v2</td></tr><tr><td>cetus_clmm::pool_creator</td><td>4</td><td>Cap not match with pool key</td><td>create_pool_v2_with_creation_cap</td></tr><tr><td>cetus_clmm::pool_creator</td><td>5</td><td>Init sqrt price not between lower and upper</td><td>create_pool_v2</td></tr><tr><td>cetus_clmm::partner</td><td>1</td><td>Partner already exists</td><td>create_partner</td></tr><tr><td>cetus_clmm::partner</td><td>2</td><td>Invalid time</td><td><p>create_partner，</p><p>update_time_range</p></td></tr><tr><td>cetus_clmm::partner</td><td>3</td><td>Invalid partner ref fee rate</td><td><p>update_ref_fee_rate，</p><p>create_partner</p></td></tr><tr><td>cetus_clmm::partner</td><td>4</td><td>Invalid partner cap</td><td>claim_ref_fee</td></tr><tr><td>cetus_clmm::partner</td><td>5</td><td>Invalid coin type</td><td>claim_ref_fee</td></tr><tr><td>cetus_clmm::partner</td><td>6</td><td>Invalid partner name</td><td>create_partner</td></tr><tr><td>cetus_clmm::factory</td><td>1</td><td>Pool already exists</td><td>create_pool_internal</td></tr><tr><td>cetus_clmm::factory</td><td>2</td><td>Invalid sqrt price</td><td>create_pool_internal</td></tr><tr><td>cetus_clmm::factory</td><td>3</td><td>Same coin type</td><td><p>new_pool_key，</p><p>create_pool_internal</p></td></tr><tr><td>cetus_clmm::factory</td><td>4</td><td>Amount in above max limit</td><td>create_pool_v2</td></tr><tr><td>cetus_clmm::factory</td><td>5</td><td>Amount out below min limit</td><td>create_pool_v2</td></tr><tr><td>cetus_clmm::factory</td><td>6</td><td>Invalid coin type sequence</td><td>new_pool_key</td></tr><tr><td>cetus_clmm::factory</td><td>7</td><td>Quote coin type not in allowed pair config</td><td>register_permission_pair_internal</td></tr><tr><td>cetus_clmm::factory</td><td>8</td><td>Tick spacing not in allowed pair config</td><td>register_permission_pair_internal</td></tr><tr><td>cetus_clmm::factory</td><td>9</td><td>Pool key already registered</td><td>register_permission_pair_internal</td></tr><tr><td>cetus_clmm::factory</td><td>10</td><td>Pool key not registered</td><td>unregister_permission_pair_internal</td></tr><tr><td>cetus_clmm::factory</td><td>11</td><td>Cap already registered</td><td>mint_pool_creation_cap_by_admin，mint_pool_creation_cap</td></tr><tr><td>cetus_clmm::factory</td><td>12</td><td>Coin type not allowed</td><td>create_pool_v2</td></tr><tr><td>cetus_clmm::factory</td><td>13</td><td>Cap not match with coin type</td><td>unregister_permission_pair_internal，register_permission_pair_internal</td></tr><tr><td>cetus_clmm::factory</td><td>14</td><td>Coin already exists in list</td><td>add_denied_coin， add_allowed_list</td></tr><tr><td>cetus_clmm::factory</td><td>15</td><td>Coin not exists in list</td><td>remove_denied_list，remove_allowed_list</td></tr><tr><td>cetus_clmm::factory</td><td>16</td><td>Liquidity check failed</td><td>create_pool_v2</td></tr><tr><td>cetus_clmm::factory</td><td>17</td><td>Tick spacing not exists in fee tier</td><td>add_allowed_pair_config</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://cetus-1.gitbook.io/cetus-developer-docs/developer/via-sdk-v2/sdk-modules/cetusprotocol-sui-clmm-sdk/contract-error-codes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
