# Errors reference

Errors use the same `result[]` structure.

Example:

```json
{
  "result": [
    {
      "status": "error",
      "message": [
        "Failed to complete dictionary action. Dictionary ID '101570' not found."
      ]
    }
  ]
}
```

### Error messages

| Message                                                                                  | HTTP | When it happens                                                                                 |
| ---------------------------------------------------------------------------------------- | ---- | ----------------------------------------------------------------------------------------------- |
| Dictionary action not found.                                                             | 400  | `action` value is not recognized.                                                               |
| Failed to \[action]. Dictionary ID is not specified.                                     | 400  | Missing `id` for an action that needs it.                                                       |
| Failed to \[action]. Only one ID can be used.                                            | 400  | Multiple IDs were passed to a single-ID action (`addwords`, `deletewords`, `getwords`, `edit`). |
| Failed to create dictionary. Dictionary ID should not be specified.                      | 400  | `id` was passed with `create`.                                                                  |
| Failed to edit dictionary. State or Description must be specified.                       | 404  | `edit` called without `description` or `state`.                                                 |
| Dictionary already exists.                                                               | 400  | `create` called with a description already used in the account.                                 |
| The '{param}' parameter is empty.                                                        | 400  | `wordlist` provided but empty.                                                                  |
| Word length exceeded. Up to 63 symbols allowed.                                          | 400  | A word exceeds 63 characters.                                                                   |
| Invalid word/wordlist. Punctuation, special characters or spaces aren't allowed.         | 400  | `wordlist` contains invalid characters or spaces.                                               |
| Failed to complete dictionary action. Dictionary ID '{id}' not found.                    | 400  | The dictionary `id` does not exist (or not accessible for this account).                        |
| Failed to get dictionaries. Not found.                                                   | 404  | `getdicts` called but there are no dictionaries.                                                |
| Failed to create dictionary. Description must be specified.                              | 400  | Missing `description` for `create`.                                                             |
| Failed to create dictionary. Dictionary with description '{description}' already exists. | 400  | Duplicate description on `create`.                                                              |
| Failed to edit dictionary. Dictionary with description '{description}' already exists.   | 400  | Duplicate description on `edit`.                                                                |
| Failed to create dictionary. Maximum number of dictionaries exceeded.                    | 403  | Account hit the dictionary limit. Response includes `dictionary_limit` and `dictionary_usage`.  |
| Failed to add words. File size exceeds 500 KB. Consider creating a new dictionary.       | 409  | Dictionary hit the file size limit.                                                             |

### Partial success warnings

`addwords` and `deletewords` can return `status=warning`.

The request succeeds for valid items.

The response `wordlist` contains only words that were actually changed.

Common warning messages:

* `Failed to add words. Already exist: word1, word2`
* `Failed to delete words. Not found: word1, word2`

{% hint style="info" %}
Word validation happens before any action runs.

If a word is invalid, you get an error instead of a warning.
{% endhint %}

### Authorization error

An access key is required for this command. If it's not provided, you will see an error:

```json
{
    "error": true,
    "message": "Access key is required to use 'custom_dictionary' command."
}
```

See [Access key](/deployment/configuration/application-server/access-key.md).


---

# 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.wproofreader.com/api-reference/custom-dictionary-api/errors-reference.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.
