# Errors

If something goes wrong, the SDKs will throw an error/exception (extending the default object of the language) with an error-code indicating what has gone wrong. Note that the payout-function will return the error instead of throwing in most instances. See details on the [payout page](/sdk/functions/payout.md).

Below are a list of all Akashic-specific errors that may be thrown or returned, and what to do if facing them.

<table><thead><tr><th width="306">Error Code</th><th>Explanation</th><th>What to do</th></tr></thead><tbody><tr><td><pre><code>OTK_ONBOARDING_FAILED
</code></pre></td><td>Failed to setup an otk on <a href="/pages/aSZiTaZkefs55F4pMqmT#akashicchain">AkahicChain</a> for testing.</td><td>Try again. If it persists, contact CS.</td></tr><tr><td><pre><code>INVALID_PRIVATE_KEY_FORMAT
</code></pre></td><td>The private-key or recovery-phrase you used to instantiate the SDK has an error.</td><td>Double-check your variables and try again.</td></tr><tr><td><pre><code>WALLET_CREATION_FAILURE
</code></pre></td><td>Failed to create an L1-wallet on AkashicChain.</td><td>Try again. If it persists, contact CS.</td></tr><tr><td><pre><code><strong>UNHEALTHY_WALLET
</strong></code></pre></td><td>A wallet was created on AkashicChain, but it could not be verified as safe. </td><td>Try again. If it persists, contact CS.</td></tr><tr><td><pre><code>ACCESS_DENIED
</code></pre></td><td>Thrown if trying to access the OTK in a production environment.</td><td>This is not allowed. Do not do this.</td></tr><tr><td><pre><code><strong>L2ADDRESS_NOT_FOUND
</strong></code></pre></td><td>If there is a formatting-error or the address does not exists when trying to do a <a href="/pages/aSZiTaZkefs55F4pMqmT#layer-2">Layer 2</a>-transaction</td><td>Double-check your input and try again</td></tr><tr><td><pre><code>NOT_SIGNED_UP
</code></pre></td><td>You are trying to instantiate the SDK without having gone through correct setup on AkashicPay.com.</td><td><a href="/pages/QCsw62z0P2gXhwElqfg0">Complete the setup</a> on AkashicPay.com and try again.</td></tr><tr><td><pre><code>FUNDS_EXCEEDED
</code></pre></td><td>You are trying to withdraw more funds than you have available.</td><td>Check your balances and inputs and try again. </td></tr><tr><td><pre><code>ASSIGNMENT_FAILED
</code></pre></td><td>Failed to create an L1-wallet on AkashicChain.</td><td>Try again. If it persists, contact CS.</td></tr><tr><td><pre><code>INVALID_PARAMETER
</code></pre></td><td>(JAVA and C# only). Invalid argument given to a function.</td><td>Double-check your inputs for syntax errors.</td></tr><tr><td><pre><code>UNKNOWN_ERROR
</code></pre></td><td>Something else went wrong.</td><td>Check the details of the error message for more information. Retry after a short delay. If error persists, contact CS.</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

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

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.akashicpay.com/sdk/errors.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
