> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zodia-custody.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Staking Error Codes

> Error codes specific to ETH and SOL staking operations

## ETH Staking

The table below describes some errors you may encounter with ETH staking operations:

| HTTP status code | Error code | Error message | Description |
| - | - | - | - |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3000 | Provider *provider\_name* does not support *validator\_type* validators | The chosen staking provider does not support the requested validator type |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3001 | Validator(s) \[*addresses*] are not in a valid state for this operation | One or more validators are not in the required status for this operation |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3002 | Validator *validator\_address* type *current\_type* is not valid for this operation (expected *expected\_type*) | The validator is not the expected type (`0x01`/`0x02`) for this operation |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3003 | Provider *provider\_name* is not available for this company | The chosen staking provider is not onboarded for your company |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3004 | This wallet has previously been used with provider *provider\_name*. Please select *provider\_name* | A wallet is pinned to the first staking provider it was used with |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3005 | Validator *validator\_address* should belong to current company | The validator belongs to a different wallet or company |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-3006 | Validator *validator\_address* does not exist | No validator was found for the given public key |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-ASE-028 | Withdrawal amount would bring the validator balance below 32 ETH | Partial Withdrawal must leave at least 32 ETH on the validator |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-ASE-031 | The validator was not active for 256 epoch | Partial Withdrawal requires the validator to have been active for at least 256 epochs |

Staking operations also use the general [error codes](https://docs.zodia-custody.com/working-with-apis/error-codes.md), in particular `ER-101` (missing required field), `ER-112` (empty required array), `ER-121`/`ER-122` (value out of allowed range — for example, a Stake request for a `0x01` validator with an `amount` other than 32 ETH), and `ER-211` (missing entitlement, `POST_ASSET_SERVICING`).

## SOL Staking

`ER-3003` and `ER-3004` in the table above also apply to SOL Stake (`0x0020-024`). The table below lists the other errors you may encounter with SOL staking operations and the SOL staking dashboard:

| HTTP status code | Error code | Error message | Description |
| - | - | - | - |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-259 | Function is only allowed for DeFi wallet | The wallet used for the operation is not a DeFi wallet |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-116 | Value of the field: amount must contain only digits | Stake: `amount` is not a plain decimal number, for example it contains a thousands separator or an exponent |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-121 | Field: Amount must be greater than or equal to *minimum* SOLANA | The amount is below the minimum. Stake requires at least 1 SOL, for every provider |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-122 | Field: Amount must be less than or equal to *available\_amount* Lamports | Unstake or Withdrawal: the amount is higher than the amount currently available to unstake or withdraw. The limit is expressed in lamports (1 SOL = 1,000,000,000 lamports) |
| [400](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/400) | ER-ASE-011 | No assets available to withdraw | Withdrawal with the `MARINADE` provider: no funds are ready to withdraw yet |
| [500](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/500) | ER-200 | Internal Error | Unstake or Withdrawal: the available amount could not be checked at that moment. Retry later |
| [503](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/503) | ER-206 | Unable to fetch data | Dashboard: the staking position could not be retrieved. Retry later |

A Stake request is also rejected with the general error codes `ER-255` or `ER-214` when the wallet balance cannot cover the amount, the network fee and the rent-exempt reserve of the new stake account, and an Unstake request when the wallet does not hold the minimum available balance required, see [SOL Staking](https://docs.zodia-custody.com/staking-guide/solana.md#unstake-0x0020-025). The dashboard returns `ER-102` for a wallet that does not exist or that your company cannot access.
