> For the complete documentation index, see [llms.txt](https://docs.kyte.sh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kyte.sh/protocol/errors.md).

# Errors

Every custom error and what triggers it.

Custom errors and the messages the website shows for them.

| Error                                                                                                             | Meaning                                                                                            |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- |
| `AssetNotEnabled`                                                                                                 | This token is not listed or is disabled                                                            |
| `PutsNotEnabled`                                                                                                  | Puts are not enabled for this token                                                                |
| `AmountZero`                                                                                                      | Amount must be greater than zero                                                                   |
| `StrikeTooLow`                                                                                                    | Strike is below the minimum for this token                                                         |
| `PremiumTooLow`                                                                                                   | Premium is below 0.0005 ETH                                                                        |
| `BadDuration`                                                                                                     | Expiry must be between 1 hour and 90 days away                                                     |
| `BadDeadline`                                                                                                     | Fill deadline must be in the future and no later than expiry                                       |
| `CapExceeded`                                                                                                     | Token has reached its exposure cap (or a buyback exceeds `maxPerCall` / balance)                   |
| `FeeOnTransfer`                                                                                                   | Token takes a fee on transfer and can't be used                                                    |
| `TooManyOpen`                                                                                                     | Seller already has 200 open offers                                                                 |
| `WrongStatus(status)`                                                                                             | Position is not in the right state for that action                                                 |
| `OfferExpired`                                                                                                    | Offer's fill deadline has passed                                                                   |
| `OptionExpired`                                                                                                   | Option has expired; it can't be exercised                                                          |
| `NotExpired`                                                                                                      | Option hasn't expired yet                                                                          |
| `NotSeller` / `NotHolder`                                                                                         | Only the seller / NFT holder can do that                                                           |
| `SelfTrade`                                                                                                       | You can't buy your own offer                                                                       |
| `PremiumAboveMax`                                                                                                 | Premium is above your `maxPremium`                                                                 |
| `MarketPaused`                                                                                                    | Paused for new positions                                                                           |
| `BatchTooLarge`                                                                                                   | More than 50 ids in `expireMany`                                                                   |
| `SplitTooSoon` / `NothingToSplit`                                                                                 | Already split this epoch / vault is empty                                                          |
| `BadSplit` / `FeeAboveCap`                                                                                        | Governance value outside its hard bounds                                                           |
| `NotConfigured`                                                                                                   | Destination or adapter not set yet                                                                 |
| `BelowMinClaim`                                                                                                   | Nothing to claim, or below the minimum claim                                                       |
| `InsufficientStake`                                                                                               | Unstaking more than you have                                                                       |
| `StakeLocked`                                                                                                     | Newly activated stake is locked until the end of this epoch                                        |
| `SlippageTooHigh`                                                                                                 | Buyback `minOut` below the TWAP or last-price floor                                                |
| `NotKeeper`                                                                                                       | Only the keeper can run buybacks                                                                   |
| `NotImplemented`                                                                                                  | KyteHook: a hook callback it does not use (only `afterInitialize` and `afterSwap` are implemented) |
| `BadPool`                                                                                                         | UniswapV4Adapter: the hook it was given is not the hook in the pool key                            |
| `InsufficientValue` / `RefundFailed` / `RouterHoldsBalance`                                                       | Router: not enough ETH / refund failed / balance left over                                         |
| `NotTimelock` / `NotGuardian` / `NotRouter` / `NotMarket` / `NotDeployer`                                         | Access control                                                                                     |
| `MarketsAlreadySet`, `LengthMismatch`, `ZeroAddress`, `AssetExists`, `UnknownAsset`, `TooManyAssets`, `UnknownId` | Configuration errors                                                                               |


---

# 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.kyte.sh/protocol/errors.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.
