# Errors

[Git Source](https://github.com/Ion-Protocol/ion-protocol/blob/88cc595825f1dc2eb738fb93e172a3e8ab7a5c43/src/Errors.sol)

### [Errors](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#errors-1" id="errors-1"></a>

#### [CeilingExceeded](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#ceilingexceeded" id="ceilingexceeded"></a>

```
error CeilingExceeded(uint256 newDebt, uint256 debtCeiling);
```

#### [UnsafePositionChange](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#unsafepositionchange" id="unsafepositionchange"></a>

```
error UnsafePositionChange(uint256 newTotalDebtInVault, uint256 collateral, uint256 spot);
```

#### [UnsafePositionChangeWithoutConsent](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#unsafepositionchangewithoutconsent" id="unsafepositionchangewithoutconsent"></a>

```
error UnsafePositionChangeWithoutConsent(uint8 ilkIndex, address user, address unconsentedOperator);
```

#### [GemTransferWithoutConsent](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#gemtransferwithoutconsent" id="gemtransferwithoutconsent"></a>

```
error GemTransferWithoutConsent(uint8 ilkIndex, address user, address unconsentedOperator);
```

#### [UseOfCollateralWithoutConsent](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#useofcollateralwithoutconsent" id="useofcollateralwithoutconsent"></a>

```
error UseOfCollateralWithoutConsent(uint8 ilkIndex, address depositor, address unconsentedOperator);
```

#### [TakingWethWithoutConsent](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#takingwethwithoutconsent" id="takingwethwithoutconsent"></a>

```
error TakingWethWithoutConsent(address payer, address unconsentedOperator);
```

#### [VaultCannotBeDusty](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#vaultcannotbedusty" id="vaultcannotbedusty"></a>

```
error VaultCannotBeDusty(uint256 amountLeft, uint256 dust);
```

#### [ArithmeticError](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#arithmeticerror" id="arithmeticerror"></a>

```
error ArithmeticError();
```

#### [IlkAlreadyAdded](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#ilkalreadyadded" id="ilkalreadyadded"></a>

```
error IlkAlreadyAdded(address ilkAddress);
```

#### [IlkNotInitialized](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#ilknotinitialized" id="ilknotinitialized"></a>

```
error IlkNotInitialized(uint256 ilkIndex);
```

#### [DepositSurpassesSupplyCap](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#depositsurpassessupplycap" id="depositsurpassessupplycap"></a>

```
error DepositSurpassesSupplyCap(uint256 depositAmount, uint256 supplyCap);
```

#### [MaxIlksReached](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#maxilksreached" id="maxilksreached"></a>

```
error MaxIlksReached();
```

#### [InvalidIlkAddress](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidilkaddress" id="invalidilkaddress"></a>

```
error InvalidIlkAddress();
```

#### [InvalidInterestRateModule](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidinterestratemodule" id="invalidinterestratemodule"></a>

```
error InvalidInterestRateModule(InterestRate invalidInterestRateModule);
```

#### [InvalidWhitelist](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidwhitelist" id="invalidwhitelist"></a>

```
error InvalidWhitelist();
```

#### [InvalidExchangeRate](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidexchangerate" id="invalidexchangerate"></a>

```
error InvalidExchangeRate(uint256 ilkIndex);
```

#### [InvalidIlkIndex](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidilkindex" id="invalidilkindex"></a>

```
error InvalidIlkIndex(uint256 ilkIndex);
```

#### [AlreadyUpdated](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#alreadyupdated" id="alreadyupdated"></a>

```
error AlreadyUpdated();
```

#### [EnforcedPause](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#enforcedpause" id="enforcedpause"></a>

```
error EnforcedPause();
```

#### [ExpectedPause](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#expectedpause" id="expectedpause"></a>

```
error ExpectedPause();
```

#### [InvalidInitialization](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidinitialization" id="invalidinitialization"></a>

```
error InvalidInitialization();
```

#### [NotInitializing](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#notinitializing" id="notinitializing"></a>

```
error NotInitializing();
```

#### [ProxyDeniedAdminAccess](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#proxydeniedadminaccess" id="proxydeniedadminaccess"></a>

```
error ProxyDeniedAdminAccess();
```

```
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole);
```

#### [AccessControlBadConfirmation](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#accesscontrolbadconfirmation" id="accesscontrolbadconfirmation"></a>

```
error AccessControlBadConfirmation();
```

#### [InvalidUniswapPool](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invaliduniswappool" id="invaliduniswappool"></a>

```
error InvalidUniswapPool();
```

#### [InvalidZeroLiquidityRegionSwap](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#invalidzeroliquidityregionswap" id="invalidzeroliquidityregionswap"></a>

```
error InvalidZeroLiquidityRegionSwap();
```

#### [CallbackOnlyCallableByPool](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#callbackonlycallablebypool" id="callbackonlycallablebypool"></a>

```
error CallbackOnlyCallableByPool(address unauthorizedCaller);
```

#### [OutputAmountNotReceived](broken://pages/uatR2f4tbujOMBVw3RNG) <a href="#outputamountnotreceived" id="outputamountnotreceived"></a>

```
error OutputAmountNotReceived(uint256 amountReceived, uint256 amountRequired);
```


---

# 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://docs.ionprotocol.io/devs/smart-contract-architecture/errors.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.
