# Vault max redeem calculations limit redeem amount to the smallest position size in underlying markets which can lead to very small max redeem amount even with huge TVL vault

Perennial vault maxRedeem was capped by the smallest underlying market position, so a huge-TVL vault could allow only tiny redemptions, effectively breaking withdrawals.

- Payout: Contest reward
- Severity: high
- Program: Perennial
- Credited: panprog
- Disclosed: 2023-10-26
- Write-up quality: 7/10
- Original: https://github.com/sherlock-audit/2023-10-perennial-judging/issues/29
- Library page: https://bugbountylibrary.com/r/sherlock%3A2023-10-perennial%3AH-3
- Tags: domain:web3 impact:dos kind:contest platform:sherlock sev:high tech:solidity technique:source-review vuln:accounting-error vuln:business-logic

**Target:** Perennial V2 vault maxRedeem / StrategyLib
**Root cause:** maxRedeem limited redemption by the vault's current opened position (closable) in each underlying market rather than comparing target vs current position/collateral, so a market stuck at maker limit with a tiny position throttled all redemptions.
**Steps:**
1. Vault has 2 markets, weight 1 each, $2M deposits.
2. Market1 vault position worth $1 (maker limit), Market2 worth $1M.
3. Call `maxRedeem`: per-market collateral = `maker.sub(net().min(maker)).min(closable*LEVERAGE_BUFFER).muldiv(price, leverage).muldiv(totalWeight, weight)`, then `redemptionAssets.min(collateral)`.
4. Result: maxRedeem = $1 despite $2M TVL; user must do millions of txs to withdraw.
**How found:** Code review of StrategyLib maxRedeem: noticed redeem limit derives from current position size, which is meaningless when a market is far from target due to maker limit; constructed two-market numeric examples showing too-low and too-high limits.
**Insight:** When auditing vault share/asset limit math, check whether limits are derived from current position vs target allocation; a single market pinned at its cap can throttle global redeem/withdraw limits even when redeeming would only increase that market's position.
