> For the complete documentation index, see [llms.txt](https://docs.enzyme.finance/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.enzyme.finance/enzyme-blue-protocol/topics/known-issues.md).

# Known Issues

These are issues that have been reported by whitehats, auditors, or internal team members, for which no fix will be made. All issues have been assessed for severity in consultation with our regular auditors and technical committee.

## Incorrect share price for depositors and redeemers if "auto-buyback of protocol fee shares" is used

Issue: During deposit and redeem, if a fund has `autoProtocolFeeSharesBuyback` turned on, an incorrect share price is constructed as: `pre-buyback GAV / post-buyback total supply`.

Effect: Results in too-high share price used to deposit or redeem shares

Mitigation: while mis-pricing should generally be small, unless you are confident in assessing impact, avoid using `autoProtocolFeeSharesBuyback` .

### Incorrect redemption amount and beneficiary share loss if a Shares Splitter's `redeemShares()` is called

Issue: When `redeemShares()` is called on a Shares Splitter, the splitter's shares are redeemed through the vault's redemption hook. The Comptroller infers the exit-fee charge from the redeemer's net share-balance change across that hook. If a fee that mints shares (e.g. `ManagementFee` or `PerformanceFee`) and an exit fee (`ExitRateBurnFee` or `ExitRateDirectFee`) settle in the same redemption, the incoming mint offsets the outgoing exit-fee shares, so the net-delta heuristic under-counts the exit charge and up to `min(minted shares, exit-fee shares)` extra shares are redeemed.

Effect: The extra redeemed shares are drawn from the Shares Splitter's shared pool, reducing the other beneficiaries' claimable balances by up to `min(minted shares, exit-fee shares)` per call. Only reachable via a Shares Splitter's `redeemShares()` path; the standard claim path is unaffected.

Mitigation: Do not call a Shares Splitter's `redeemShares()` — directly, programmatically, or via a block explorer; it is intentionally not exposed in the admin UI. Beneficiaries should claim their shares with `claimToken` and then, if they want the underlying assets, redeem those shares from their own account like any other holder.

### Stale high-water mark if a performance fee rounds to zero

Issue: If the share price is above the high-water mark (HWM) but the performance fee is less than one base unit of the denomination asset, `PerformanceFee.settle()` rounds the fee to zero and returns early. It skips the HWM reset, so the HWM stays at its old value. In practice this only happens when total supply is down to the locked minimum shares of the `MinSharesSupplyFee` (every real depositor has exited) and only dust value remains in the vault. For example, 1 USDC base unit backing `1e6` shares.

Effect: The stale HWM persists through the next deposit. On the next fee settlement, which anyone can trigger, the performance fee charges the historical per-share gain against the new depositor's principal. Fee shares go to the fee recipient and dilute the depositor, even though the vault made no new gain. Vaults with ongoing depositors are not affected.

Mitigation: Managers should be aware that once every depositor has exited a vault with a performance fee, new deposits can be overcharged. Deploy a new vault rather than reopening a fully redeemed one.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.enzyme.finance/enzyme-blue-protocol/topics/known-issues.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
