Euler finance

Euler finance vaults can reject withdrawals when liquidity or account checks block access to assets

Euler finance vaults can show a deposit balance while rejecting withdrawals because available cash or account restrictions limit access to assets. Shares record a claim on the vault. A withdrawal also needs enough underlying liquidity, valid authorization and a resulting position that passes the applicable checks.

- last updated

A visible balance and a rejected withdrawal

Start with the exact rejection and the selected account before changing the requested withdrawal. A disconnected wallet, stale network connection and a contract revert leave different evidence. Confirm the network and vault address, then establish whether the wallet produced a transaction hash. Reading those records doesn't change the position.

Portfolio separates direct deposits from Borrow and Multiply positions. A balance elsewhere in the same wallet doesn't establish ownership in the account named by the withdrawal. Preserve the requested amount, public account address and error text. If a transaction already exists, inspect its status before sending another request. Remove signing secrets and credentials from diagnostic logs.

The withdrawal path determines which conditions apply

Asset withdrawals and share redemptions specify different amounts, while collateral and Earn withdrawals add further dependencies. Identify the actual operation behind the request. Changing its label doesn't remove a cash shortage or an account restriction, and an Earn strategy queue isn't the same mechanism as a direct lending vault's withdrawal.

At a glance: The withdrawal path determines which conditions apply
Withdrawal option Amount specified Relevant constraint Condition for access
Direct asset withdrawal Underlying assets Enough shares and available vault cash Requested assets fit available liquidity and permitted operations
Direct share redemption Vault shares Converted assets must fit available cash Redemption passes authorization and vault checks
Collateral withdrawal Collateral assets to remove Liquidity and remaining account health Remaining collateral satisfies the controller
EulerEarn withdrawal Assets or shares, depending on the call Liquidity and withdrawal limits of queued strategies Allocation and queue permit the requested withdrawal

For direct calls, withdraw fixes the asset amount and calculates the shares to burn. redeem fixes the shares and calculates the assets returned. Both remain subject to execution limits. Neither function promises to convert the whole displayed position into spendable tokens immediately.

Available cash limits the amount that can leave

Borrowed assets contribute to a lending vault's accounting value without remaining available for immediate withdrawal. A credit vault's total assets include its available cash and outstanding borrowing, including accrued interest. This explains how a depositor can retain a positive claim while the vault lacks enough tokens to satisfy that claim immediately.

The error E_InsufficientCash identifies an insufficient cash balance for the requested operation. A smaller request can fit the available liquidity, provided the other checks pass. Waiting helps only if liquidity actually returns, such as through repayments or new supply. An unchanged share balance provides no timetable for that change.

Utilization describes how much liquidity borrowers use. A high supply rate doesn't establish withdrawal capacity, and increasing the transaction's gas allowance doesn't replenish a vault.

Can a collateral withdrawal fail before the account reaches its liquidation threshold?

Yes, a withdrawal can fail the borrowing-limit check even while the position remains below its liquidation threshold. Removing collateral reduces the value supporting the debt. The controller evaluates the remaining position using its permitted borrowing conditions, which differ from the conditions that allow liquidation.

Loan-to-value, or LTV, expresses borrowing relative to collateral value. The applicable check uses configured collateral adjustments and oracle prices rather than the wallet's aggregate balance. Interest also changes the liability that the remaining collateral must support. A liquidation indicator therefore can't substitute for evaluating the proposed withdrawal.

Reducing the withdrawal, adding eligible collateral or repaying debt can change that result. Each addresses account coverage; none automatically supplies cash to the collateral vault. When both constraints apply, resolving the account-health failure still leaves the liquidity requirement in place.


A zero maximum can be a conservative answer

The Euler Vault Kit's (EVK) withdrawal-limit calculation returns zero when the owner has any enabled controller. The maxWithdraw and maxRedeem helpers use this conservative calculation. It avoids estimating how an external controller will judge the account after assets leave.

That result doesn't prove every smaller withdrawal would fail. An integration that supports borrowing accounts needs to evaluate the controller and simulate the complete proposed operation. Conversely, a positive maximum doesn't account for every custom hook condition. Treat the helper's output as one input to diagnosis, with its implementation limits intact.

Without an enabled controller, the core calculation limits redemption by both the owner's shares and available cash. These helpers describe the state at the time of the read; later transactions can change that state.

A zero maximum can be a conservative answer: That result doesn't prove every smaller withdrawal would fail.; An integration that supports borrowing accounts needs to evaluate the controller and simulate the complete proposed operation.; Conversely, a positive maximum doesn't account for every custom hook condition.; Treat the helper's output as one input to diagnosis, with its implementation limits intact.

View full-size image


Account ownership and share allowances

An authenticated owner can withdraw its own shares without approving itself as a spender. A different authenticated caller needs sufficient vault-share allowance. The error E_InsufficientAllowance concerns that spending authority, while E_InsufficientBalance concerns the owner's shares. An approval for the underlying deposit token doesn't establish either requirement. Check which account owns the shares and which caller spends them before granting further permissions.

Account ownership and share allowances: An authenticated owner can withdraw its own shares without approving itself as a spender. A different authenticated caller needs sufficient vault-share allowance.; The error E_InsufficientAllowance concerns that spending authority, while E_InsufficientBalance concerns the owner's shares.; An approval for the underlying deposit token doesn't establish either requirement.; Check which account owns the shares and which caller spends them before granting further permissions.

View full-size image

Hooks and oracle failures need different repairs

A vault can reject an otherwise affordable withdrawal because its configured operation rules deny it. Hooks are additional contract logic attached to selected operations. They can impose conditions or disable operations, including withdrawals. A disabled operation differs from a temporary cash shortage: reducing the amount won't necessarily change its outcome.

Account checks also depend on the configured oracle when debt requires collateral valuation. A failed pricing call can prevent the vault from completing that check. An unrelated market price displayed elsewhere doesn't repair the contract's pricing dependency.

Keep the exact revert separate from assumptions about the cause. More collateral cannot repair a disabled operation, and repeated submissions cannot establish that an oracle has recovered. Any configuration repair depends on the deployed permissions; a depositor doesn't acquire those permissions by owning shares.

Why can a successful preview still lead to a revert?

A preview calculates an amount without proving that the complete withdrawal will pass execution checks. ERC-4626 preview functions intentionally exclude withdrawal limits. An output from previewWithdraw therefore doesn't establish available cash or permission to remove collateral.

A complete transaction simulation includes more context. For a borrowing account, that means the relevant Ethereum Vault Connector, or EVC, calls and final status checks. Simulating an isolated conversion leaves those dependencies untested.

The EVC can defer account and vault checks until the end of a batch. Earlier operations appearing to succeed during execution don't establish success if a final check reverts the transaction.

State can change between simulation and inclusion. Other withdrawals or borrowing can consume cash, while interest and oracle updates can change account coverage. In EVC simulation mode, custom contracts can detect the simulation flag and behave differently from a submitted transaction.

Use a fresh simulation of the intended call sequence before committing. Keep the requested amount, owner and receiver consistent with that simulation, and investigate a persistent failure instead of signing unchanged requests.

Earn vaults add strategy withdrawal dependencies

An EulerEarn withdrawal depends on how much its allocated strategies can return. The configured withdrawal queue determines which strategies the withdrawal can draw from, while each strategy brings its own liquidity and withdrawal behavior.

A position's aggregate valuation therefore doesn't prove that every allocation can unwind immediately. Check the Earn vault's withdrawal limit and allocation state rather than applying a direct credit vault's cash figure alone. Strategy losses can reduce recoverable assets while reported totalAssets and share conversions still include the recorded shortfall as lostAssets. Check lostAssets alongside the assets represented by strategy shares and maxWithdraw to distinguish a recorded loss from a temporary liquidity shortage.


Share value can change without a withdrawal

A stable share count doesn't require a stable value in underlying assets. Interest, fees and losses can change the amount those shares represent. Supply APY describes an annualized rate under changing conditions; it doesn't certify principal value or exit liquidity. When a displayed asset balance changes, distinguish that valuation change from an actual share burn. Neither an attractive rate nor an earlier valuation fixes the amount available at execution.

Confirmation requires a receipt and the receiving balance

A completed withdrawal needs a successful transaction and the expected underlying assets at the specified receiver. Check the actual vault's Withdraw event, including the owner, receiver, asset amount and shares burned. A successful approval alone doesn't provide this evidence.

Match that record to the owner's reduced share balance and the receiver's underlying-token movement. For collateral withdrawals, also inspect the remaining position. A screen that hasn't refreshed can disagree with those records; an unexplained disagreement warrants checking the network and account before taking another action.

If the transaction reverted, its withdrawal state changes don't persist. An earlier approval submitted separately can remain in effect. The next attempt becomes justified when the identified dependency changes: available cash, account coverage, authorization or an operation restriction. If those conditions remain unresolved, a further signature doesn't establish access to the assets.

Quick answers about Euler finance vaults

Can an unhealthy borrowing account block withdrawals of deposits that aren't collateral?

Yes, an unhealthy account can also face restrictions on withdrawing its non-collateral deposits. EVK treats the account as one position for these checks. The restriction doesn't itself authorize liquidation of those non-collateral assets, and moving them elsewhere isn't automatically available while the account remains restricted.

What causes E_ZeroAssets when redeeming a small share balance?

E_ZeroAssets occurs when a nonzero redemption amount converts to zero underlying assets after rounding. EVK rounds the assets returned by redemption down. A positive share count can therefore be too small to produce a transferable underlying amount at the applicable exchange rate.

Is an EVC sub-account a suitable receiver for withdrawn underlying tokens?

An unsigned EVC-derived sub-account generally isn't a suitable receiver for ordinary underlying tokens. Its owner doesn't hold a separate private key for that address, and ordinary token contracts cannot authenticate ownership through the EVC. EVK normally rejects transfers of underlying assets to known non-owner sub-account addresses. Its EVC-compatible-asset configuration can disable that check for compatible assets. Use a controllable receiver unless the exact token and receiving flow support reviewed EVC-aware handling.

Which account query can miss a deposit during withdrawal troubleshooting?

The getAccountEnabledVaultsInfo query can omit deposits in vaults that the account hasn't enabled as collateral or controller. That omission doesn't establish a zero deposit balance. A query for the specific account and vault, such as getAccountInfo, checks the relevant position without relying on the enabled-vault list.