Learn what to do when withdrawals fail due to insufficient liquidity and how Flux's Auto-Deallocating (ADA) mechanism protects LPs.
Overview
Flux vaults use standard ERC4626 withdrawals which succeed immediately or revert. There is no "emergency withdrawal" function. Instead, if a withdrawal fails due to insufficient liquidity, you must wait for:
Manager repayments - Managers naturally repay debt over time
Auto-Deallocating (ADA) - Vault's ADA Manager can force-close positions to free liquidity
When Withdrawals Fail
Understanding the Failure
// Attempt withdrawal
try vault.redeem(shares, msg.sender, msg.sender) returns (uint256 assets) {
// Success - you received your assets
} catch Error(string memory reason) {
// Failed - likely "Insufficient liquidity"
// Vault doesn't have enough idle assets
}
Why It Happens
Withdrawals fail when:
High utilization: Most vault assets are borrowed by managers
No idle liquidity: idleLiquidity < requestedAmount
Managers holding positions: Waiting to close for profitability
Example:
What To Do
Option 1: Wait for Natural Repayments
Managers repay debt over time as they:
Close profitable positions
Take profits
Reduce leverage
Exit the vault
Timeline: Hours to days depending on market conditions
How to monitor:
Option 2: Hope for ADA
If vault utilization is very high (>95%), the vault's ADA Manager may trigger Auto-Deallocating to free up liquidity.
What is ADA?
Auto-Deallocating allows the vault's designated ADA Manager (typically the vault creator) to force-close healthy manager positions during high utilization periods.
Key Points:
LPs don't trigger ADA - Only the ADA Manager can
Protects LPs - Frees liquidity for withdrawals
Fair to managers - They receive their full net equity
Conditional - Only works when utilization is very high
Important: You cannot force ADA to happen. You must wait for the ADA Manager to act.
Option 3: Sell Shares OTC
If you need immediate liquidity, sell your shares to another user at a discount:
Pros:
Immediate liquidity
No waiting for vault liquidity
Certainty
Cons:
Must accept discount (3-5% typical)
Need to find a buyer
OTC risk
Monitoring Vault Liquidity
Check Before Withdrawing
Monitor Utilization
Utilization Guidelines:
<70%: Healthy, easy withdrawals
70-85%: Normal, most withdrawals work
85-95%: High, some withdrawals may fail
>95%: Very high, withdrawals likely to fail
Understanding ADA Protection
How ADA Protects You
ADA is Flux's mechanism to protect LPs during liquidity crunches:
Without ADA:
With ADA:
Who Is the ADA Manager?
The ADLAManager is a designated address that can trigger ADA. Usually:
Vault creator (most common)
Protocol governance
Automated bot
No one (ADA disabled)
When Can ADA Be Triggered?
ADA can only be triggered when all of these are true:
High utilization: Vault utilization >95% (strategy-specific)
Manager in ADA zone: Manager's health ratio between liquidation threshold and ADL threshold
Position still solvent: Manager has positive equity
Example:
Best Practices
For Normal Withdrawals
Check liquidity first - Preview and verify before withdrawing
Monitor utilization - Withdraw when utilization is low
Be patient - If failed, wait for repayments
Plan ahead - Don't wait until you urgently need funds
For High Utilization Scenarios
Check ADA Manager - Verify vault has an active ADA Manager
Monitor for ADA - Watch for ADA events freeing liquidity
Consider discounts - Selling shares OTC may be faster
Communicate - Contact vault creator about liquidity issues
Risk Management
Diversify - Don't put all funds in one vault
Watch utilization - Prefer vaults with <85% utilization
Understand ADA - Know if vault has ADA protection
Emergency reserves - Keep some funds outside vaults
Decision Framework
Common Questions
Q: Why doesn't Flux have a withdrawal queue? A: Flux uses a simpler model - withdrawals either succeed or fail. ADA provides LP protection without queue complexity.
Q: What if the ADA Manager doesn't act? A: You must wait for natural repayments. Choose vaults with reputable, responsive ADA Managers.
Q: Can I force the ADLAManager to trigger ADA? A: No, only the designated ADA Manager can trigger ADA.
Q: What if ADA is disabled? A: You rely entirely on natural manager repayments. Avoid high-utilization vaults without ADA.
Q: Will I lose money if I wait? A: No, share value continues to accrue interest while you wait.
Q: How long does it typically take? A: Hours to days depending on:
Vault State:
- Total Assets: $10M
- Borrowed by Managers: $9.7M
- Idle Liquidity: $300K
Your Withdrawal:
- Shares to redeem: 1,000
- Assets expected: $500K
- Result: FAILS (need $500K, only $300K available)
// Check idle liquidity periodically
function checkLiquidity(address vault, uint256 shares) external view returns (
uint256 needed,
uint256 available,
bool canWithdraw
) {
IFluxVault v = IFluxVault(vault);
needed = v.previewRedeem(shares);
available = v.getIdleLiquidity();
canWithdraw = available >= needed;
return (needed, available, canWithdraw);
}
// Poll every few hours
// Withdraw when canWithdraw == true
Scenario:
- Vault utilization: 97% (very high!)
- Idle liquidity: $200K
- Your withdrawal needs: $500K
- ADA Manager sees the issue
Action:
- ADA Manager force-closes some manager positions
- Frees up $1M in liquidity
- You can now withdraw successfully
// Transfer shares to buyer at 3% discount
uint256 shareValue = vault.convertToAssets(shares);
uint256 discountedPrice = shareValue * 97 / 100;
// Buyer pays you base asset
IERC20(baseAsset).transferFrom(buyer, msg.sender, discountedPrice);
// You transfer shares
vault.transfer(buyer, shares);
High utilization → No liquidity → LPs stuck → Potential bank run
High utilization → ADA Manager acts → Positions closed → Liquidity freed → LPs can withdraw
// Check who the ADA Manager is
address adlManager = vault.STRATEGY().adlManager();
if (adlManager == address(0)) {
// ADL is disabled - no protection
} else {
// ADL is enabled - have protection
}
Strategy Config:
- Liquidation threshold: 110%
- ADL threshold: 120%
Manager Position:
- Health ratio: 115%
- In ADA zone? YES (110% < 115% < 120%)
- Can be ADA'd? Only if vault utilization >95%
Need to withdraw?
│
├─ Check: Is liquidity available?
│ ├─ YES → Withdraw now
│ └─ NO ↓
│
├─ How urgent?
│ ├─ Not urgent → Wait for repayments (best option)
│ ├─ Somewhat urgent → Check if ADA will trigger
│ └─ Very urgent → Sell shares OTC at discount
│
└─ Can you wait?
├─ YES → Monitor liquidity, try again later
└─ NO → Sell shares OTC