# Non-standard MQTT options

## Maximum Client Id Size

Set the maximum size for client ids, MQTT v3.1 specifies a limit of 23 characters.

```
max_client_id_size = 23
```

This option default to `23`.

## Maximum Topic Depth

Usually, you'll configure permissions on your topic structures using ACLs. In addition to that, `topic_max_depth` sets a global maximum value for topic levels. This protects the broker from clients subscribing to arbitrary deep topic levels.

```
topic_max_depth = 20
```

The default value for `topic_max_depth` is 10. As an example, this value will allow topics like `a/b/c/d/e/f/g/h/i/k`, that is 10 levels. A client running into the topic depth limit will be disconnected and an error will be logged.

## Persistent Client Expiration

This option allows persistent clients (those with `clean_session` set to `false`) to be removed if they do not reconnect within a certain time frame.

{% hint style="warning" %}
This is a non-standard option. As far as the MQTT specification is concerned, persistent clients are persisted forever.
{% endhint %}

The expiration period should be an integer followed by one of `h`, `d`, `w`, `m`, `y` for hour, day, week, month, and year; or `never`:

```
persistent_client_expiration = 1w
```

This option defaults to `never`.

## Message Size Limit

Limit the maximum publish payload size in bytes that VerneMQ allows. Messages that exceed this size won't be accepted.

```
max_message_size = 0
```

Defaults to `0`, which means that all valid messages are accepted. MQTT specification imposes a maximum payload size of 268435455 bytes.


---

# 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://courier-gojek.gitbook.io/vernemq/configuring-vernemq/nonstandard.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.
