# Environment variables reference

To configure Weaviate in a [Docker](../installation/installation-guides-docker-installation.md) or a [Kubernetes](../installation/installation-guides-k8s-installation.md) deployment, you can set these environment variables.

:::callout{intent="info" title="Boolean environment variables"}
For Boolean environment variables, `"on"`, `"enabled"`, `"1"`, and `"true"` are interpreted as `true`.

All other values are interpreted as `false`.
:::

:::callout{intent="tip" title="Runtime configuration updates"}
Weaviate supports runtime configuration management. Check out how to [configure it and the available environment variables](runtime-config.md).
:::

## General

```mdx-code-block
<APITable>
```

| Variable                                                         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Type                                              | Example Value                                              |
| ---------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- | ---------------------------------------------------------- |
| `ASYNC_INDEXING`                                                 | If set, Weaviate creates vector indexes asynchronously to the object creation process. This can be useful for importing large amounts of data. (default: `false`)                                                                                                                                                                                                                                                                                                                                                                                  | `boolean`                                         | `false`                                                    |
| `AUTOSCHEMA_ENABLED`                                             | Whether to infer the schema where necessary with the autoschema (default: `true`)                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | `boolean`                                         | `true`                                                     |
| `BANNER_INTERVAL`                                                | How often the banner is logged again after its first appearance. The banner draws its art, and a `► News:` line when there is one, from `https://weaviate.io/banner/v1.json` when it can be fetched. Banner and fetch happen only when telemetry is enabled. Default: `24h`. Values under `1h` are raised to `1h`.<br>Added in `v1.40`                                                                                                                                                                                                             | `string - duration`                               | `12h`                                                      |
| `CORS_ALLOW_HEADERS`                                             | Value of the `Access-Control-Allow-Headers` response header on the REST API, which controls the request headers a browser may send cross-origin. The default is the long list of headers Weaviate itself reads, including `Content-Type`, `Authorization` and the per-provider API-key headers. Default: the built-in header list                                                                                                                                                                                                                  | `string - comma separated names`                  | `Content-Type, Authorization`                              |
| `CORS_ALLOW_METHODS`                                             | Value of the `Access-Control-Allow-Methods` response header on the REST API, which controls the HTTP methods a browser may use cross-origin. Default: `*`                                                                                                                                                                                                                                                                                                                                                                                          | `string - comma separated names`                  | `GET, POST, OPTIONS`                                       |
| `CORS_ALLOW_ORIGIN`                                              | Value of the `Access-Control-Allow-Origin` response header on the REST API, which controls the origins a browser may call Weaviate from. Set this to reach Weaviate directly from browser code on a specific site. Default: `*`                                                                                                                                                                                                                                                                                                                    | `string`                                          | `https://example.com`                                      |
| `DEFAULT_QUANTIZATION`                                           | Default quantization technique - can be overridden by the quantization method specified in the collection definition. Available values: `rq-8`, `rq-4`, `rq-1`, `pq`, `bq`, `sq` and `none`. Default: `none`.<br><br>Note: If the selected quantization method isn't supported for the index type of a collection (for example PQ & SQ aren't supported for the flat index, and `rq-4` is supported for the HNSW index only), the quantization won't be applied to that collection.<br><br>Added in `v1.33`. `rq-4` added in `v1.39` as a preview. | `string`                                          | `rq-8`                                                     |
| `DEFAULT_SHARDING_COUNT`                                         | Default `desiredCount` for new single-tenant collections, used when the collection definition does not specify one. An explicit `desiredCount` in the class creation request still takes precedence. A value of `0` (default) uses the cluster node count. Multi-tenant collections are unaffected. Must be `<= 512`. Runtime-configurable. Default: `0`<br>Added in `v1.37`                                                                                                                                                                       | `string - number`                                 | `12`                                                       |
| `DEFAULT_VECTOR_INDEX`                                           | Default vector index type for new collections (and named vectors), used when the collection definition does not specify one. An explicit `vectorIndexType` in the collection definition still takes precedence. Available values: `hnsw`, `flat`, `dynamic`, and `hfresh`. Runtime-configurable. Default: `hnsw`<br>Added in `v1.37.3`                                                                                                                                                                                                             | `string`                                          | `flat`                                                     |
| `DEFAULT_VECTORIZER_MODULE`                                      | Default vectorizer module - can be overridden by the vectorizer in the collection definition.                                                                                                                                                                                                                                                                                                                                                                                                                                                      | `string`                                          | `text2vec-contextionary`                                   |
| `API_BASED_MODULES_DISABLED`                                     | Weaviate automatically enables the usage of all [API-based modules](../model-provider-integrations/index.md#api-based). Set this variable to `true` in order to limit access and only allow specific modules through the [`ENABLE_MODULES`](#ENABLE_MODULES) variable. Default: `false`<br> Added in `v1.33`                                                                                                                                                                                                                                       | `boolean`                                         | `true`                                                     |
| `DISABLE_GRAPHQL`                                                | Disable the GraphQL API (default: `false`). When `true`, the `/v1/graphql` endpoint is not served. New [Weaviate Cloud](../manage-clusters/default-settings.md) clusters are created with this set to `true`.                                                                                                                                                                                                                                                                                                                                      | `boolean`                                         | `true`                                                     |
| `DISABLE_LAZY_LOAD_SHARDS`                                       | When `false`, enable lazy shard loading to improve mean time to recovery in multi-tenant deployments. **Deprecated in `v1.36.6`.** Use `LAZY_LOAD_SHARD_COUNT_THRESHOLD` and `LAZY_LOAD_SHARD_SIZE_THRESHOLD_GB` instead. Weaviate now auto-detects when lazy loading is needed per collection.                                                                                                                                                                                                                                                    | `string`                                          | `false`                                                    |
| `DISABLE_STARTUP_BANNER`                                         | Disable the banner Weaviate logs shortly after startup (`action=banner`, with the version, the link to [Improve your cluster](../errors/improve-your-cluster.md), and this node's `/v1/meta` URL), and its repeat every `BANNER_INTERVAL`. The banner runs only while telemetry is enabled, because it fetches its art from weaviate.io, so a cluster with `DISABLE_TELEMETRY=true` never logs one. It is an `info` entry, so `LOG_LEVEL=warning` or stricter hides it as well. Default: `false`<br>Added in `v1.40`                               | `boolean`                                         | `true`                                                     |
| `DISABLE_TELEMETRY`                                              | Disable [telemetry](../monitoring-and-logging/telemetry.md) data collection                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | boolean                                           | `false`                                                    |
| `DISK_USE_READONLY_PERCENTAGE`                                   | If disk usage is higher than the given percentage all shards on the affected node will be marked as `READONLY`, meaning all future write requests will fail. See [Disk Pressure Warnings and Limits for details](../storage-and-backups/persistence.md#disk-pressure-warnings-and-limits).                                                                                                                                                                                                                                                         | `string - number`                                 | `90`                                                       |
| `DISK_USE_WARNING_PERCENTAGE`                                    | If disk usage is higher than the given percentage a warning will be logged by all shards on the affected node's disk. See [Disk Pressure Warnings and Limits for details](../storage-and-backups/persistence.md#disk-pressure-warnings-and-limits).                                                                                                                                                                                                                                                                                                | `string - number`                                 | `80`                                                       |
| `ENABLE_API_BASED_MODULES`                                       | Enable all API-based modules. Removed as of `v1.33`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `boolean`                                         | `true`                                                     |
| `ENABLE_MODULES`                                                 | Specify which modules are enabled and can be used.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `string - comma separated names`                  | `text2vec-openai,generative-openai`                        |
| `ENABLE_TOKENIZER_GSE`                                           | Enable the [`GSE` tokenizer](../reference-configuration/collections.md) for use                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `boolean`                                         | `true`                                                     |
| `ENABLE_TOKENIZER_KAGOME_JA`                                     | Enable the [`Kagome` tokenizer for Japanese](../reference-configuration/collections.md) for use                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `boolean`                                         | `true`                                                     |
| `ENABLE_TOKENIZER_KAGOME_KR`                                     | Enable the [`Kagome` tokenizer for Korean](../reference-configuration/collections.md) for use                                                                                                                                                                                                                                                                                                                                                                                                                                                      | `boolean`                                         | `true`                                                     |
| `EXPERIMENTAL_REST_SEARCH_ENABLED`                               | (EXPERIMENTAL) Enable the [REST Search API](/weaviate/api/rest): the `POST /v1/search/{collection}/near-text`, `/bm25`, `/hybrid` and `/near-object` endpoints, and the sibling `POST /v1/aggregate/{collection}` endpoint. While disabled, these endpoints reject requests with a `422` status. Default: `false`                                                                                                                                                                                                                                  | `boolean`                                         | `true`                                                     |
| `EXPORT_DEFAULT_BUCKET`                                          | Storage bucket name for [collection exports](../storage-and-backups/export.md). Required for S3, GCS, and Azure backends.<br>Added in `v1.37`                                                                                                                                                                                                                                                                                                                                                                                                      | `string`                                          | `my-export-bucket`                                         |
| `EXPORT_DEFAULT_PATH`                                            | Optional base path prefix for exported files within the bucket for [collection exports](../storage-and-backups/export.md). Defaults to `""` (no prefix). _Changed in `v1.37.1`: previously required to be explicitly set._<br>Added in `v1.37`                                                                                                                                                                                                                                                                                                     | `string`                                          | `exports/my-cluster`                                       |
| `EXPORT_ENABLED`                                                 | Enable the [collection export](../storage-and-backups/export.md) API. Default: `false`<br>Added in `v1.37`                                                                                                                                                                                                                                                                                                                                                                                                                                         | `boolean`                                         | `true`                                                     |
| `EXPORT_PARALLELISM`                                             | Number of concurrent scan workers for [collection exports](../storage-and-backups/export.md). `0` uses GOMAXPROCS. Default: `0`<br>Added in `v1.37`                                                                                                                                                                                                                                                                                                                                                                                                | `string - number`                                 | `4`                                                        |
| `EXPORT_SKIP_ACCESS_CHECK`                                       | Skip the write-and-delete access check that runs when the [collection export](../storage-and-backups/export.md) backend initializes. Set to `true` for immutable (write-once / WORM) buckets or least-privilege credentials that cannot delete objects. Applied at startup. Default: `false`<br>Added in `v1.37.8`                                                                                                                                                                                                                                 | `boolean`                                         | `true`                                                     |
| `GODEBUG`                                                        | Controls debugging variables within the runtime. [See official Go docs](https://pkg.go.dev/runtime).                                                                                                                                                                                                                                                                                                                                                                                                                                               | `string - comma-separated list of name=val pairs` | `gctrace=1`                                                |
| `GOMAXPROCS`                                                     | Set the maximum number of threads that can be executing simultaneously. If this value is set, it be respected by `LIMIT_RESOURCES`.                                                                                                                                                                                                                                                                                                                                                                                                                | `string - number`                                 | `NUMBER_OF_CPU_CORES`                                      |
| `GOMEMLIMIT`                                                     | Set the memory limit for the Go runtime. A suggested value is between 80-90% of your total memory for Weaviate. The Go runtime tries to make sure that long-lived and temporary memory allocations do not exceed this value by making the garbage collector more aggressive as the memory usage approaches the limit. [Learn more about GOMEMLIMIT](https://weaviate.io/blog/gomemlimit-a-game-changer-for-high-memory-applications).                                                                                                              | `string - memory limit in SI units`               | `4096MiB`                                                  |
| `INVERTED_SORTER_DISABLED`                                       | Forces the "objects bucket" strategy and doesn't consider inverted sorting. Most users should never set this flag; it exists for benchmarking and as a safety net. Default: `false`                                                                                                                                                                                                                                                                                                                                                                | `boolean`                                         | `false`                                                    |
| `GO_PROFILING_DISABLE`                                           | If `true`, disables Go profiling. Default: `false`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `boolean`                                         | `false`                                                    |
| `GO_PROFILING_PORT`                                              | Sets the port for the Go profiler. Default: `6060`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `integer`                                         | `6060`                                                     |
| `DEBUG_ENDPOINTS_ENABLED`                                        | Gate for the debug HTTP listener (the profiling port set by `GO_PROFILING_PORT`, default `6060`), which serves Weaviate's **unauthenticated** internal debug and profiling endpoints: `/debug/config`, Go profiling (`/debug/pprof/*`, `/debug/fgprof`), and various maintenance and diagnostic routes. [Runtime-configurable](runtime-config.md) via the `debug_endpoints_enabled` override. Default: `false`. `GO_PROFILING_DISABLE` still controls whether the listener binds at all. <br>Added in `v1.37.9`                                    | `boolean`                                         | `true`                                                     |
| `GRPC_MAX_MESSAGE_SIZE`                                          | Maximum gRPC message size in bytes. Requests larger than this limit (e.g. a large `insert_many` call) are rejected. Default: `104858000` (approximately 100 MB)                                                                                                                                                                                                                                                                                                                                                                                    | `string - number`                                 | `2000000000`                                               |
| `GRPC_PORT`                                                      | The port on which Weaviate's gRPC server listens for incoming requests. Default: `50051`                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `string - number`                                 | `50052`                                                    |
| `HNSW_GEO_INDEX_EF`                                              | Balance geo index search speed and recall. This value controls the search depth for geo-based queries. Default: `800`<br>Added in `v1.31.22`                                                                                                                                                                                                                                                                                                                                                                                                       | `string - number`                                 | `1000`                                                     |
| `LAZY_LOAD_SHARD_COUNT_THRESHOLD`                                | Number of shards (tenants) in a collection before lazy shard loading activates. Set to `0` to force lazy loading for all collections. Default: `1000`. See [dynamic lazy shard loading](../concepts/storage.md#dynamic-lazy-shard-loading). <br>Added in `v1.36.6`                                                                                                                                                                                                                                                                                 | `string - number`                                 | `1000`                                                     |
| `LAZY_LOAD_SHARD_SIZE_THRESHOLD_GB`                              | Total shard size (in GB) for a collection before lazy shard loading activates. Default: `100`. See [dynamic lazy shard loading](../concepts/storage.md#dynamic-lazy-shard-loading). <br>Added in `v1.36.6`                                                                                                                                                                                                                                                                                                                                         | `string - number`                                 | `100`                                                      |
| `LIMIT_RESOURCES`                                                | If `true`, Weaviate will automatically attempt to auto-detect and limit the amount of resources (memory & threads) it uses to (0.8 \* total memory) and (number of cores-1). It will override any `GOMEMLIMIT` values, however it will respect `GOMAXPROCS` values.                                                                                                                                                                                                                                                                                | `boolean`                                         | `false`                                                    |
| `LOG_FORMAT`                                                     | Set the Weaviate logging format <br><br>`json` (default): Outputs log data in JSON. e.g. `{"action":"startup","level":"debug","msg":"finished initializing modules","time":"2023-04-12T05:07:43Z"}` <br>`text`: Outputs log data to a string. e.g. `time="2023-04-12T04:54:23Z" level=debug msg="finished initializing modules" action=startup`                                                                                                                                                                                                    | `string`                                          |                                                            |
| `LOG_LEVEL`                                                      | Sets the Weaviate logging level. Default: `info`<br><br>`panic`: Panic entries only. <br>`fatal`: Fatal entries only. <br> `error`: Error entries only. <br>`warning`: Warning entries only. <br>`info`: General operational entries. <br> `debug`: Very verbose logging. <br>`trace`: Even finer-grained informational events than `debug`.                                                                                                                                                                                                       | `string`                                          |                                                            |
| `MAXIMUM_ALLOWED_COLLECTIONS_COUNT`                              | Maximum allowed number of collections in a Weaviate node. A value of `-1` removes the limit. Default: `-1` (unlimited) <br><br>Instead of raising the collections count limit, consider [rethinking your architecture](../starter-guides/managing-collections-collections-scaling-limits.md).<br>Added in `v1.30`                                                                                                                                                                                                                                  | `string - number`                                 | `20`                                                       |
| `MAXIMUM_CONCURRENT_BUCKET_LOADS`                                | Maximum number of buckets that can be loaded concurrently during startup. This is a safeguard to prevent overwhelming the operating system when loading large numbers of collections. Default: `100`<br>Added in `v1.31.22`                                                                                                                                                                                                                                                                                                                        | `string - number`                                 | `50`                                                       |
| `MAXIMUM_CONCURRENT_SHARD_LOADS`                                 | Maximum number of shards that can be loaded concurrently during startup. This is a safeguard to prevent overwhelming the operating system when loading large numbers of collections. Default: `100`                                                                                                                                                                                                                                                                                                                                                | `string - number`                                 | `50`                                                       |
| `MCP_SERVER_CONFIG_PATH`                                         | Path to a YAML file for customizing MCP tool descriptions. Useful for prompt engineering the LLM's understanding of your specific data. If not provided or file malformed, the default descriptions will be used. Default: `""` (default tool descriptions from the [source code](https://github.com/weaviate/weaviate/tree/main/adapters/handlers/mcp) will be used)<br>Added in `v1.37.1`                                                                                                                                                        | `string`                                          | `/etc/weaviate/mcp-config.yaml`                            |
| `MCP_SERVER_ENABLED`                                             | Enable the built-in MCP server. When enabled, the MCP endpoint is available at `/v1/mcp` on the REST API port. Default: `false`<br>Added in `v1.37.1`. [Runtime-configurable](runtime-config.md#mcp) from `v1.38`.                                                                                                                                                                                                                                                                                                                                 | `boolean`                                         | `true`                                                     |
| `MCP_SERVER_WRITE_ACCESS_ENABLED`                                | Enable write tools (`weaviate-objects-upsert`) on the MCP server. When `false`, only read and query tools are available. Default: `false`<br>Added in `v1.37.1`. [Runtime-configurable](runtime-config.md#mcp) from `v1.38`.                                                                                                                                                                                                                                                                                                                       | `boolean`                                         | `true`                                                     |
| `MEMORY_READONLY_PERCENTAGE`                                     | If memory usage is higher than the given percentage all shards on the affected node will be marked as `READONLY`, meaning all future write requests will fail. (Default: `0` - i.e. no limit)                                                                                                                                                                                                                                                                                                                                                      | `string - number`                                 | `75`                                                       |
| `MEMORY_WARNING_PERCENTAGE`                                      | If memory usage is higher than the given percentage a warning will be logged by all shards on the affected node's disk. (Default: `0` - i.e. no limit)                                                                                                                                                                                                                                                                                                                                                                                             | `string - number`                                 | `85`                                                       |
| `MODULES_CLIENT_TIMEOUT`                                         | Timeout for requests to Weaviate modules. Default: `50s`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `string - duration`                               | `5s`, `10m`, `1h`                                          |
| `OBJECTS_TTL_BATCH_SIZE`                                         | Number of objects deleted per batch during TTL cleanup. With the default pause settings, a pause occurs every `OBJECTS_TTL_BATCH_SIZE * OBJECTS_TTL_PAUSE_EVERY_NO_BATCHES` objects (100,000 by default). Can be modified at runtime. Default: `10000` <br>Added in `v1.36`                                                                                                                                                                                                                                                                        | `string - number`                                 | `10000`                                                    |
| `OBJECTS_TTL_CONCURRENCY_FACTOR`                                 | Controls the concurrency of the TTL deletion process as a multiplier. Higher values use more resources but delete faster. Must be greater than 0. Can be modified at runtime. Default: `1` <br>Added in `v1.36`                                                                                                                                                                                                                                                                                                                                    | `string - number`                                 | `1`                                                        |
| `OBJECTS_TTL_DELETE_SCHEDULE`                                    | Schedule for deleting expired objects. Accepts standard 5-field cron format, 6-field (with seconds), 7-field (with seconds and year), descriptors (`@yearly`, `@monthly`, `@weekly`, `@daily`, `@hourly`), or hash expressions. Default: `""` (disabled) <br>Added in `v1.36`                                                                                                                                                                                                                                                                      | `string - cron format`                            | `0 */6 * * *` (every 6 hours)                              |
| `OBJECTS_TTL_PAUSE_DURATION`                                     | How long to pause the TTL deletion process between batches. Longer pauses reduce resource pressure but slow down cleanup. If `0` there is no pause. Can be modified at runtime. Default: `1m` <br>Added in `v1.36`                                                                                                                                                                                                                                                                                                                                 | `string - duration`                               | `20s`, `2m`                                                |
| `OBJECTS_TTL_PAUSE_EVERY_NO_BATCHES`                             | Number of batch deletions to process before pausing. With the default batch size of 10,000, a pause occurs every 100,000 deleted objects. If `0` there is no pause. Can be modified at runtime. Default: `10` <br>Added in `v1.36`                                                                                                                                                                                                                                                                                                                 | `string - number`                                 | `3`                                                        |
| `OPERATIONAL_MODE`                                               | Sets the [mode of operation](../monitoring-and-logging/status.md#operational-modes) for the instance, limiting the available operations based on the mode selected. Options: `ReadWrite` (default), `ReadOnly`, `WriteOnly`, `ScaleOut`. These values are case-sensitive and matched exactly. An unrecognized value (such as `READ_ONLY`) silently falls back to the default `ReadWrite`, without a warning or an error, so a node you intended to restrict stays fully writable.                                                                  | `string`                                          | `ReadWrite`                                                |
| `ORIGIN`                                                         | Set the http(s) origin for Weaviate                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `string - HTTP origin`                            | `https://my-weaviate-deployment.com`                       |
| `PERSISTENCE_DATA_PATH`                                          | Path to the Weaviate data store.<br>[Note about file systems and performance](../concepts/resources.md#file-system).                                                                                                                                                                                                                                                                                                                                                                                                                               | `string - file path`                              | `/var/lib/weaviate` <br> Defaults to `./data`              |
| `PERSISTENCE_HNSW_DISABLE_SNAPSHOTS`                             | **Deprecated in `v1.39`.** Ignored, and logs a startup warning. In `v1.31` through `v1.38`: if set, HNSW snapshotting is disabled. Default: `false` (enabled) as of `v1.36`; `true` (disabled) in `v1.31` through `v1.35`. See [snapshot configuration before `v1.39`](../concepts/storage.md#snapshot-configuration-before-v139). <br>Added in `v1.31`                                                                                                                                                                                            | `boolean`                                         | `false`                                                    |
| `PERSISTENCE_HNSW_SNAPSHOT_INTERVAL_SECONDS`                     | **Deprecated in `v1.39`.** Ignored, and logs a startup warning. In `v1.31` through `v1.38`: the minimum time in seconds that must pass before the next snapshot is created. Default: `21600` seconds (6 hours). See [snapshot configuration before `v1.39`](../concepts/storage.md#snapshot-configuration-before-v139). <br>Added in `v1.31`                                                                                                                                                                                                       | `string - number`                                 | `3600`                                                     |
| `PERSISTENCE_HNSW_SNAPSHOT_MIN_DELTA_COMMITLOGS_NUMBER`          | **Deprecated in `v1.39`.** Ignored, and logs a startup warning. In `v1.31` through `v1.38`: the minimum number of new commit log files created since the last snapshot. Default: `1`. See [snapshot configuration before `v1.39`](../concepts/storage.md#snapshot-configuration-before-v139). <br>Added in `v1.31`                                                                                                                                                                                                                                 | `string - number`                                 | `100`                                                      |
| `PERSISTENCE_HNSW_SNAPSHOT_MIN_DELTA_COMMITLOGS_SIZE_PERCENTAGE` | **Deprecated in `v1.39`.** Ignored, and logs a startup warning. In `v1.31` through `v1.38`: the minimum total size of new commit logs (as a percentage of the previous snapshot's size) required to trigger a new snapshot. Default: `5` (meaning 5% of the previous snapshot's size in new commit logs). See [snapshot configuration before `v1.39`](../concepts/storage.md#snapshot-configuration-before-v139). <br>Added in `v1.31`                                                                                                             | `string - number`                                 | `15`                                                       |
| `PERSISTENCE_HNSW_SNAPSHOT_ON_STARTUP`                           | **Deprecated in `v1.39`.** Ignored, and logs a startup warning. In `v1.31` through `v1.38`: if set, Weaviate tries to create a new snapshot during startup when enough new commit log data has accumulated since the last snapshot. Otherwise, it loads the existing snapshot. Default: `true`. See [snapshot configuration before `v1.39`](../concepts/storage.md#snapshot-configuration-before-v139). <br>Added in `v1.31`                                                                                                                       | `boolean`                                         | `false`                                                    |
| `PERSISTENCE_HNSW_MAX_LOG_SIZE`                                  | Maximum size of the HNSW [write-ahead-log](../concepts/storage.md#hnsw-vector-index-storage). Increase this to improve log compaction efficiency, or decrease to reduce memory requirements. Default: 500MiB                                                                                                                                                                                                                                                                                                                                       | `string`                                          | `4GiB` (IEC units), `4GB` (SI units), `4000000000` (bytes) |
| `PERSISTENCE_LSM_ACCESS_STRATEGY`                                | Function used to access disk data in virtual memory. Default: `mmap`                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | `string`                                          | `mmap` or `pread`                                          |
| `PERSISTENCE_LSM_MAX_SEGMENT_SIZE`                               | Maximum size of a segment in the [LSM store](../concepts/storage.md#object-and-inverted-index-store). Set this to limit disk usage spikes during compaction to \~2x the segment size. Default: no limit                                                                                                                                                                                                                                                                                                                                            | `string`                                          | `4GiB` (IEC units), `4GB` (SI units), `4000000000` (bytes) |
| `PROMETHEUS_MONITORING_ENABLED`                                  | If set, Weaviate collects [metrics in a Prometheus-compatible format](../monitoring-and-logging/monitoring.md)                                                                                                                                                                                                                                                                                                                                                                                                                                     | `boolean`                                         | `false`                                                    |
| `PROMETHEUS_MONITORING_GROUP`                                    | If set, Weaviate groups metrics for the same class across all shards.                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | `boolean`                                         | `true`                                                     |
| `QUERY_BOOST_DEFAULT_DEPTH`                                      | Default candidate-pool size used when a [Boost](../how-to-query-search/boost.md) query does not set its own `depth`. The primary search retrieves this many candidates before the boost rescorer runs. Must be a positive integer and is hard-capped by `QUERY_MAXIMUM_RESULTS`. Default: `100`<br>Added in `v1.38`                                                                                                                                                                                                                                | `string - number`                                 | `200`                                                      |
| `QUERY_CROSS_REFERENCE_DEPTH_LIMIT`                              | Sets the maximum depth of cross-references to be resolved in a query. Defaults to 5.                                                                                                                                                                                                                                                                                                                                                                                                                                                               | `string - number`                                 | `3`                                                        |
| `QUERY_DEFAULTS_LIMIT`                                           | Sets the default number of objects to be returned in a query.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | `string - number`                                 | `25` <br> Defaults to `10`                                 |
| `QUERY_HYBRID_MAXIMUM_RESULTS`                                   | Minimum size of the candidate pool that each leg of a [hybrid search](../how-to-query-search/hybrid.md) retrieves before fusion. Each of the keyword and vector sub-searches fetches at least `offset` plus this many candidates, so that paging deeper into a hybrid result set stays consistent. Raise it if hybrid results shift between pages; higher values cost more work per query. Default: `100`<br>Added in `v1.32`, and backported to `v1.30.12` and `v1.31.6`                                                                          | `string - number`                                 | `200`                                                      |
| `QUERY_MAXIMUM_RESULTS`                                          | Sets the maximum total number of objects that can be retrieved.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `string - number`                                 | `10000`                                                    |
| `QUERY_SLOW_LOG_ENABLED`                                         | Log slow queries for debugging. Requires a restart to update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | `boolean`                                         | `False`                                                    |
| `QUERY_SLOW_LOG_THRESHOLD`                                       | Set a threshold time for slow query logging. Requires a restart to update.                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | `string`                                          | `2s` <br> Values are times: `3h`, `2s`, `100ms`            |
| `REINDEX_SET_TO_ROARINGSET_AT_STARTUP`                           | Allow Weaviate to perform a one-off re-indexing to use Roaring Bitmaps.                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | `boolean`                                         | `true`                                                     |
| `REVECTORIZE_CHECK_DISABLED`                                     | Disables the optimization that reuses an object's existing vector when it is updated and none of its vectorized properties changed. By default (`false`) this check runs and skips unnecessary re-vectorization; set to `true` to re-vectorize on every update. Disabling removes a read-before-write. That can raise write throughput, and it guarantees a fresh vector on every update, at the cost of one extra embedding call per update (and the associated API cost, for remote vectorizers). Default: `false`                               | `boolean`                                         | `false`                                                    |
| `TENANT_ACTIVITY_READ_LOG_LEVEL`                                 | Sets the log level for tenant read activity. Useful for analysis or debugging purposes. Default: `debug`                                                                                                                                                                                                                                                                                                                                                                                                                                           | `string`                                          | `info`                                                     |
| `TENANT_ACTIVITY_WRITE_LOG_LEVEL`                                | Sets the log level for tenant write activity. Useful for analysis or debugging purposes. Default: `debug`                                                                                                                                                                                                                                                                                                                                                                                                                                          | `string`                                          | `info`                                                     |
| `TOKENIZER_CONCURRENCY_COUNT`                                    | Limit the combined number of GSE and Kagome tokenizers running at the same time. Default: `GOMAXPROCS`                                                                                                                                                                                                                                                                                                                                                                                                                                             | `string - number`                                 | `NUMBER_OF_CPU_CORES`                                      |
| `TOMBSTONE_DELETION_CONCURRENCY`                                 | The maximum number of cores to use for tombstone deletion. Set this to limit the number of cores used for cleanup. Default: Half of the available cores.                                                                                                                                                                                                                                                                                                                                                                                           | `string - int`                                    | `4`                                                        |
| `TOMBSTONE_DELETION_MAX_PER_CYCLE`                               | Maximum number of tombstones to delete per cleanup cycle. Set this to limit cleanup cycles, as they are resource-intensive. As an example, set a maximum of 10000000 (10M) for a cluster with 300 million-object shards. Default: none                                                                                                                                                                                                                                                                                                             | `string - int`                                    | `10000000`                                                 |
| `TOMBSTONE_DELETION_MIN_PER_CYCLE`                               | Minimum number of tombstones to delete per cleanup cycle. Set this to prevent triggering unnecessary cleanup cycles below a threshold. As an example, set a minimum of 1000000 (1M) for a cluster with 300 million-object shards. Default: 0                                                                                                                                                                                                                                                                                                       | `string - int`                                    | `100000`                                                   |
| `USE_GSE`                                                        | Enable the [`GSE` tokenizer](../reference-configuration/collections.md) for use. <br> (The same as `ENABLE_TOKENIZER_GSE`. We recommend using `ENABLE_TOKENIZER_GSE` for consistency in naming with other optional tokenizers.)                                                                                                                                                                                                                                                                                                                    | `boolean`                                         | `true`                                                     |
| `USE_INVERTED_SEARCHABLE`                                        | Store searchable properties using a more efficient in-disk format, designed for the BlockMax WAND algorithm. Set as `true` together with `USE_BLOCKMAX_WAND` to enable BlockMax WAND at query time. Default: `false` <br> From `v1.30` default: `true` <br>[Read more](../indexing/inverted-index.md#blockmax-wand-algorithm)                                                                                                                                                                                                                      | `boolean`                                         | `true`                                                     |
| `USE_BLOCKMAX_WAND`                                              | Use BlockMax WAND algorithm for BM25 and hybrid searches. Enable it together with `USE_INVERTED_SEARCHABLE` to get the performance benefits. <br> From `v1.30` Default: `true` <br>[Read more](../indexing/inverted-index.md#blockmax-wand-algorithm)                                                                                                                                                                                                                                                                                              | `boolean`                                         | `true`                                                     |

```mdx-code-block
</APITable>
```

## Module-specific

```mdx-code-block
<APITable>
```

| Variable                               | Description                                                                                                                                                                                     | Type              | Example Value                                    |
| -------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ------------------------------------------------ |
| `BACKUP_*`                             | Various configuration variables for backup provider modules. They are outlined in detail on the [Backups page](../storage-and-backups/backups.md).                                              |                   |                                                  |
| `AZURE_BLOCK_SIZE`                     | The block size for Azure Blob Storage for backups. Default: `41943040` (40MB)                                                                                                                   | `int - bytes`     | `10000000`                                       |
| `AZURE_CONCURRENCY`                    | The maximum number of parts that will be concurrently uploaded/downloaded during backup operations. Default: `1`                                                                                | `int`             | `3`                                              |
| `CLIP_INFERENCE_API`                   | The endpoint where to reach the clip module if enabled                                                                                                                                          | `string`          | `http://multi2vec-clip:8080`                     |
| `CONTEXTIONARY_URL`                    | Service-Discovery for the contextionary container                                                                                                                                               | `string - URL`    | `http://contextionary`                           |
| `IMAGE_INFERENCE_API`                  | The endpoint where to reach the img2vec-neural module if enabled                                                                                                                                | `string`          | `http://localhost:8000`                          |
| `LOWERCASE_VECTORIZATION_INPUT`        | If `true`, Weaviate lowercases all input text before vectorization. <br>For `text2vec-contextionary`, set this to `true`                                                                        | `boolean`         | `true`                                           |
| `OFFLOAD_S3_BUCKET`                    | The S3 bucket to use for offloading (default: `weaviate-offload`)                                                                                                                               | `string`          | `my-custom-offload-bucket`                       |
| `OFFLOAD_S3_BUCKET_AUTO_CREATE`        | Whether to automatically create the S3 bucket for offloading if it does not exist (default: `false`)                                                                                            | `boolean`         | `true`                                           |
| `OFFLOAD_S3_CONCURRENCY`               | The maximum number of parts that will be uploaded/downloaded in parallel during offloading operations (default: `25`)                                                                           | `string - number` | `10`                                             |
| `OFFLOAD_TIMEOUT`                      | The request timeout value, in seconds (default: `120`)                                                                                                                                          | `string - number` | `60`                                             |
| `TRANSFORMERS_INFERENCE_API`           | The endpoint where to reach the transformers module if enabled                                                                                                                                  | `string`          | `http://text2vec-transformers:8080`              |
| `USE_GOOGLE_AUTH`                      | Automatically look for Google Cloud credentials, and generate Vertex AI access tokens for Weaviate to use as needed ([read more](../model-provider-integrations/google.md)). (default: `false`) | `boolean`         | `true`                                           |
| `USE_SENTENCE_TRANSFORMERS_VECTORIZER` | (EXPERIMENTAL) Use the `sentence-transformer` vectorizer instead of the default vectorizer (from the `transformers` library). Applies to custom images only.                                    | `boolean`         | `true`                                           |
| `CLIP_WAIT_FOR_STARTUP`                | If `true`, Weaviate waits for the `multi2vec-clip` module to start up before starting (default: `true`).                                                                                        | `boolean`         | `true`                                           |
| `NER_WAIT_FOR_STARTUP`                 | If `true`, Weaviate waits for the `ner-transformers` module to start up before starting (default: `true`).                                                                                      | `boolean`         | `true`                                           |
| `QNA_WAIT_FOR_STARTUP`                 | If `true`, Weaviate waits for the `qna-transformers` module to start up before starting (default: `true`).                                                                                      | `boolean`         | `true`                                           |
| `RERANKER_WAIT_FOR_STARTUP`            | If `true`, Weaviate waits for the `reranker-transformers` module to start up before starting (default: `true`).                                                                                 | `boolean`         | `true`                                           |
| `SUM_WAIT_FOR_STARTUP`                 | If `true`, Weaviate waits for the `sum-transformers` module to start up before starting (default: `true`).                                                                                      | `boolean`         | `true`                                           |
| `GPT4ALL_WAIT_FOR_STARTUP`             | If `true`, Weaviate waits for the `text2vec-gpt4all` module to start up before starting (default: `true`).                                                                                      | `boolean`         | `true`                                           |
| `TRANSFORMERS_WAIT_FOR_STARTUP`        | If `true`, Weaviate waits for the `text2vec-transformers` module to start up before starting (default: `true`).                                                                                 | `boolean`         | `true`                                           |
| `USAGE_GCS_BUCKET`                     | GCS bucket name (required if using GCS)                                                                                                                                                         | `string`          | `my-weaviate-usage-bucket`                       |
| `USAGE_GCS_PREFIX`                     | Optional object prefix for GCS reports                                                                                                                                                          | `string`          | `usage-reports`                                  |
| `USAGE_S3_BUCKET`                      | S3 bucket name (required if using S3)                                                                                                                                                           | `string`          | `my-weaviate-usage-bucket`                       |
| `USAGE_S3_PREFIX`                      | Optional object prefix for S3 reports                                                                                                                                                           | `string`          | `usage-reports`                                  |
| `RUNTIME_OVERRIDES_ENABLED`            | Enable runtime override configuration                                                                                                                                                           | `boolean`         | `true`                                           |
| `RUNTIME_OVERRIDES_PATH`               | Path to the runtime override config file                                                                                                                                                        | `string`          | `${PWD}/tools/dev/config.runtime-overrides.yaml` |
| `RUNTIME_OVERRIDES_LOAD_INTERVAL`      | Reload interval for runtime override config. Default: `2m`                                                                                                                                      | `duration`        | `2m`                                             |
| `USAGE_SCRAPE_INTERVAL`                | Interval for scraping usage metrics. Default: `1h`                                                                                                                                              | `duration`        | `1h`                                             |
| `USAGE_SHARD_JITTER_INTERVAL`          | Jitter interval for shard-level operations to avoid overwhelming the filesystem when there are thousands of shards. Default: `100ms`                                                            | `duration`        | `100ms`                                          |
| `USAGE_POLICY_VERSION`                 | Policy version for usage tracking                                                                                                                                                               | `string`          | `2025-06-01`                                     |
| `USAGE_VERIFY_PERMISSIONS`             | Verify bucket permissions on start. Default: `false`                                                                                                                                            | `boolean`         | `true`                                           |

```mdx-code-block
</APITable>
```

## Authentication and authorization

:::callout{intent="info" title="Authentication & Authorization documentation"}
For more information on authentication and authorization, see the [Authentication](../authorization-and-authentication/deploy-configuration-authentication.md) and [Authorization](../authorization-and-authentication/deploy-configuration-authorization.md) pages.
:::

```mdx-code-block
<APITable>
```

| Variable                                       | Description                                                                                                                                                                                                                                                              | Type                            | Example Value                                                 |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------- | ------------------------------------------------------------- |
| `AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED`      | Allow users to interact with weaviate without auth                                                                                                                                                                                                                       | `boolean`                       | `true` <br> Defaults to `true`                                |
| `AUTHENTICATION_APIKEY_ALLOWED_KEYS`           | Allowed API keys. <br><br> Each key corresponds to a specific user identity below.                                                                                                                                                                                       | `string - comma-separated list` | `jane-secret-key,ian-secret-key`                              |
| `AUTHENTICATION_APIKEY_ENABLED`                | Enable API key-based authentication                                                                                                                                                                                                                                      | `boolean`                       | `false`                                                       |
| `AUTHENTICATION_APIKEY_USERS`                  | API key-based identities. <br><br> Each identity corresponds to a specific key above.                                                                                                                                                                                    | `string - comma-separated list` | `jane@doe.com,ian-smith`                                      |
| `AUTHENTICATION_DB_USERS_ENABLED`              | Allow runtime [user management](../authorization-and-authentication/weaviate-configuration-rbac-manage-users.md). Default: `false`                                                                                                                                       | `boolean`                       | `true`                                                        |
| `AUTHENTICATION_OIDC_CERTIFICATE`              | OIDC Certificate (PEM format)                                                                                                                                                                                                                                            | `string - PEM`                  | `-----BEGIN CERTIFICATE-----\n...\n-----END CERTIFICATE-----` |
| `AUTHENTICATION_OIDC_CLIENT_ID`                | OIDC Client ID                                                                                                                                                                                                                                                           | `string`                        | `my-client-id`                                                |
| `AUTHENTICATION_OIDC_ENABLED`                  | Enable OIDC-based authentication                                                                                                                                                                                                                                         | `boolean`                       | `false`                                                       |
| `AUTHENTICATION_OIDC_GROUPS_CLAIM`             | OIDC Groups Claim                                                                                                                                                                                                                                                        | `string`                        | `groups`                                                      |
| `AUTHENTICATION_OIDC_INSECURE_SKIP_TLS_VERIFY` | **Not recommended for production.** When `true`, skips TLS certificate verification for the OIDC issuer endpoint. Only use when the OIDC issuer uses a self-signed or untrusted certificate in development or testing environments. Default: `false`<br>Added in `v1.37` | `boolean`                       | `true`                                                        |
| `AUTHENTICATION_OIDC_ISSUER`                   | OIDC Token Issuer                                                                                                                                                                                                                                                        | `string - URL`                  | `https://myissuer.com`                                        |
| `AUTHENTICATION_OIDC_JWKS_URL`                 | OIDC JWKS URL                                                                                                                                                                                                                                                            | `string - URL`                  | `https://myissuer.com/.well-known/jwks.json`                  |
| `AUTHENTICATION_OIDC_SCOPES`                   | OIDC scopes to request                                                                                                                                                                                                                                                   | `string - comma-separated list` | `openid,email`                                                |
| `AUTHENTICATION_OIDC_SKIP_CLIENT_ID_CHECK`     | Skip OIDC Client ID check                                                                                                                                                                                                                                                | `boolean`                       | `false`                                                       |
| `AUTHENTICATION_OIDC_USERNAME_CLAIM`           | OIDC Username Claim                                                                                                                                                                                                                                                      | `string`                        | `email`                                                       |
| `AUTHORIZATION_ADMINLIST_ENABLED`              | Enable AdminList authorization scheme (mutually exclusive with `AUTHORIZATION_RBAC_ENABLED`)                                                                                                                                                                             | `boolean`                       | `true`                                                        |
| `AUTHORIZATION_ADMINLIST_USERS`                | Users with admin permission when AdminList scheme used                                                                                                                                                                                                                   | `string - comma-separated list` | `jane@example.com,john@example.com`                           |
| `AUTHORIZATION_ADMINLIST_READONLY_USERS`       | Users with read-only permission when AdminList scheme used                                                                                                                                                                                                               | `string - comma-separated list` | `alice@example.com,dave@example.com`                          |

```mdx-code-block
</APITable>
```

### RBAC Authorization

```mdx-code-block
<APITable>
```

| Variable                        | Description                                                                                                              | Type                            | Example Value                   |
| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------- | ------------------------------- |
| `AUTHORIZATION_RBAC_ENABLED`    | Enable RBAC authorization scheme (mutually exclusive with `AUTHORIZATION_ADMINLIST_ENABLED`).                            | `boolean`                       | `true`                          |
| `AUTHORIZATION_RBAC_ROOT_USERS` | Users with the built-in root/administrator role when RBAC scheme used. At least one root user must be defined with RBAC. | `string - comma-separated list` | `admin-user,another-admin-user` |

```mdx-code-block
</APITable>
```

## Multi-node instances

```mdx-code-block
<APITable>
```

| Variable                                   | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | Type              | Example Value           |
| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- | ----------------------- |
| `CLUSTER_ADVERTISE_ADDR`                   | Manually sets the address used to advertise the node to the cluster. Useful if the system hostname cannot be resolved via DNS (e.g., lookup errors).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | `string`          | `127.0.0.1`             |
| `CLUSTER_DATA_BIND_PORT`                   | Port for exchanging data.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | `string - number` | `7103`                  |
| `CLUSTER_GOSSIP_BIND_PORT`                 | Port for exchanging network state information.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | `string - number` | `7102`                  |
| `CLUSTER_HOSTNAME`                         | Hostname of a node. Always set this value if the default OS hostname might change over time.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `string`          | `node1`                 |
| `CLUSTER_JOIN`                             | The service name of the "founding" member node in a cluster setup                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | `string`          | `weaviate-node-1:7100`  |
| `HNSW_STARTUP_WAIT_FOR_VECTOR_CACHE`       | If `true`, vector cache prefill is synchronous when a node starts. The node reports ready to serve when the cache is hot. Default changed to `true` in `v1.36.6`. **Deprecated in `v1.36.6`.** Setting it still overrides auto-detection, but Weaviate logs a deprecation warning at startup and the variable will be removed in a future version. When it is unset, prefill behavior is governed by [dynamic lazy shard loading](../concepts/storage.md#dynamic-lazy-shard-loading). For collections where dynamic lazy shard loading is active, this is always overridden to `false` regardless of the configured value. The configured value only applies to eagerly-loaded collections. | `boolean`         | `true`                  |
| `COLLECTION_RETRIEVAL_STRATEGY`            | Set collection definition retrieval behavior for a data request. <br><br>   - `LeaderOnly` (default): Always requests the definition from the leader node.  - `LocalOnly`: Always use the local definition  - `LeaderOnMismatch`: Requests the definition if outdated.   ([Read more](../replication-architecture/consistency.md#collection-definition-requests-in-queries))                                                                                                                                                                                                                                                                                                                | `string`          | `LeaderOnly`            |
| `RAFT_BOOTSTRAP_EXPECT`                    | The number of voter notes at bootstrapping time                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | `string - number` | `1`                     |
| `RAFT_BOOTSTRAP_TIMEOUT`                   | The time in seconds to wait for the cluster to bootstrap                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `string - number` | `90`                    |
| `RAFT_DRAIN_SLEEP`                         | Grace period before shutdown to allow ongoing operations to complete. (Default: `200ms`)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | `string - number` | `2s`                    |
| `RAFT_ENABLE_ONE_NODE_RECOVERY`            | Enable running the single node recovery routine on restart. This is useful if the default hostname has changed and a single node cluster believes there are supposed to be two nodes.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `boolean`         | `false`                 |
| `RAFT_GRPC_MESSAGE_MAX_SIZE`               | The maximum internal raft gRPC message size in bytes. Defaults to 1073741824                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | `string - number` | `1073741824`            |
| `RAFT_JOIN`                                | Manually set Raft voter nodes. If set, RAFT\_BOOTSTRAP\_EXPECT needs to be adjusted manually to match the number of Raft voters.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | `string`          | `weaviate-0,weaviate-1` |
| `RAFT_METADATA_ONLY_VOTERS`                | If `true`, voter nodes only handle the schema. They do not accept any data.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | `boolean`         | `false`                 |
| `RAFT_TIMEOUTS_MULTIPLIER`                 | Multiplier for Raft consensus timeouts and memberlist TCP timeouts. (Default: `5`)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | `string - number` | `10`                    |
| `REPLICA_MOVEMENT_ENABLED`                 | Enable replica movement and replication operations. When enabled, the replication engine starts and REST API endpoints for replica operations become available. Default: `false` <br>Added in `v1.32`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | `boolean`         | `true`                  |
| `REPLICA_MOVEMENT_MINIMUM_ASYNC_WAIT`      | How long replica movement waits after file copy but before finalizing the move in order for in progress writes to finish. Default: `60` seconds <br>Added in `v1.32`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | `string - number` | `90`                    |
| `REPLICATED_INDICES_REQUEST_QUEUE_ENABLED` | Enable/disable the request queue buffer for replicated indices in multi-node clusters. Can be modified at runtime. Default: `false`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | `boolean`         | `true`                  |
| `REPLICATION_ENGINE_MAX_WORKERS`           | The number of workers to process replica movements in parallel. Default: `10` <br>Added in `v1.32`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | `string - number` | `5`                     |
| `REPLICATION_MINIMUM_FACTOR`               | The minimum replication factor for all collections in the cluster.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | `string - number` | `3`                     |

```mdx-code-block
</APITable>
```

### Async replication

```mdx-code-block
<APITable>
```

| Variable                                           | Description                                                                                                                                                                                                                                                                                                                                                                           | Type                | Example Value |
| -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------- | ------------- |
| `ASYNC_REPLICATION_DISABLED`                       | Disable async replication cluster-wide. When `false` (default), async replication runs automatically for any collection with a replication factor greater than `1`. Default: `false`                                                                                                                                                                                                  | `boolean`           | `false`       |
| `ASYNC_REPLICATION_SCHEDULER_WORKERS`              | Number of workers in the cluster-wide pool that run async replication work across all shards and tenants. Added in `v1.38`, replacing `ASYNC_REPLICATION_CLUSTER_MAX_WORKERS`. Default: `10`, Max: `100`<br> [Read more.](../replication-and-scaling/async-rep.md#async_replication_scheduler_workers)                                                                                | `string - number`   | `10`          |
| `ASYNC_REPLICATION_HASHTREE_INIT_CONCURRENCY`      | Number of shards that may build their hash tree concurrently when async replication starts up. Added in `v1.38`. Default: `100`<br> [Read more.](../replication-and-scaling/async-rep.md#async_replication_hashtree_init_concurrency)                                                                                                                                                 | `string - number`   | `100`         |
| `ASYNC_REPLICATION_CLUSTER_MAX_WORKERS`            | **Removed in `v1.38`.** Previously set the maximum number of concurrent async replication workers across the cluster. Replaced by `ASYNC_REPLICATION_SCHEDULER_WORKERS`.                                                                                                                                                                                                              | `string - number`   | `30`          |
| `ASYNC_REPLICATION_HASHTREE_HEIGHT`                | Height of the hash tree used for data comparison between nodes. If the height is `0` each node will store just one digest per shard. Default: `16` (single-tenant) / `10` (multi-tenant), Min: `0`, Max: `20`<br> [Read more about potentially increased memory consumption.](../replication-architecture/consistency.md#memory-and-performance-considerations-for-async-replication) | `string - number`   | `10`          |
| `ASYNC_REPLICATION_FREQUENCY`                      | Frequency of periodic data comparison between nodes. Default: `30s`                                                                                                                                                                                                                                                                                                                   | `string - duration` | `60s`         |
| `ASYNC_REPLICATION_FREQUENCY_WHILE_PROPAGATING`    | Frequency of data comparison between nodes while propagation is active. Default: `3s`                                                                                                                                                                                                                                                                                                 | `string - duration` | `5s`          |
| `ASYNC_REPLICATION_ALIVE_NODES_CHECKING_FREQUENCY` | **Removed in `v1.38`.** Previously set how often the background process checked for changes in node availability. No longer used by the async replication scheduler.                                                                                                                                                                                                                  | `string - duration` | `5s`          |
| `ASYNC_REPLICATION_LOGGING_FREQUENCY`              | Frequency of how often the background process logs any events. Default: `60s`                                                                                                                                                                                                                                                                                                         | `string - duration` | `7s`          |
| `ASYNC_REPLICATION_DIFF_BATCH_SIZE`                | Specifies the batch size for comparing digest information between nodes. Default: `1000`, Min: `1`, Max: `10000`                                                                                                                                                                                                                                                                      | `string - number`   | `2000`        |
| `ASYNC_REPLICATION_DIFF_PER_NODE_TIMEOUT`          | Defines the time limit a node has to provide a comparison response. Default: `10s`                                                                                                                                                                                                                                                                                                    | `string - duration` | `30s`         |
| `ASYNC_REPLICATION_PRE_PROPAGATION_TIMEOUT`        | Sets a delay before propagation begins to allow in-progress write operations to complete across nodes. Default: `5m`                                                                                                                                                                                                                                                                  | `string - duration` | `10m`         |
| `ASYNC_REPLICATION_PROPAGATION_TIMEOUT`            | Defines the time limit a node has to provide a propagation response. Default: `1m`                                                                                                                                                                                                                                                                                                    | `string - duration` | `2m`          |
| `ASYNC_REPLICATION_PROPAGATION_LIMIT`              | Limits the number of out-of-sync objects that can be propagated in one asynchronous replication iteration. Default: `10000`, Min: `1`, Max: `1000000`                                                                                                                                                                                                                                 | `string - number`   | `5000`        |
| `ASYNC_REPLICATION_PROPAGATION_DELAY`              | Sets a delay period to allow asynchronous write operations to reach all nodes in a shard/tenant before propagating new or updated objects. Default: `30s`                                                                                                                                                                                                                             | `string - duration` | `40s`         |
| `ASYNC_REPLICATION_PROPAGATION_CONCURRENCY`        | Defines the number of workers which will concurrently propagate a batch of objects. Default: `5`, Min: `1`, Max: `20`                                                                                                                                                                                                                                                                 | `string - number`   | `10`          |
| `ASYNC_REPLICATION_PROPAGATION_BATCH_SIZE`         | Sets the maximum number of objects to propagate in a single batch. Default: `100`, Min: `1`, Max: `1000`                                                                                                                                                                                                                                                                              | `string - number`   | `200`         |

```mdx-code-block
</APITable>
```

<!-- Docs notes:
Undocumented environment variables - for internal use only:
MAINTENANCE_NODES
ASYNC_BRUTE_FORCE_SEARCH_LIMIT
RAFT_FORCE_ONE_NODE_RECOVERY
-->

## Questions and feedback

Have a question or feedback? Here's how to reach us.

::::card-grid
:::card{title="Community Forum" href="https://forum.weaviate.io/c/support" icon="messages-square"}
Ask questions and connect with other developers on our **Community forum**.
:::

:::card{title="Support" href="/guides/support-overview" icon="life-buoy"}
Weaviate Cloud user or customer? Find the right channel on the **Support page**.
:::
::::

## Related pages

- [Agents](./agents-index.md)
- [AI-assisted Weaviate code generation](./ai-assisted-vibe-coding-index.md)
- [APIs](./apis-index.md)
- [Authorization and authentication](./authorization-and-authentication-index.md)
- [Benchmarks](./benchmarks-index.md)
- [Best practices](./best-practices-index.md)
- [Client libraries](./clients-index.md)
- [Client Libraries / SDKs](./client-libraries-index.md)
- [Cloud](./cloud-index.md)
- [Cloud account management](./cloud-account-management-index.md)

# Agent Instructions

This portal answers questions programmatically. To receive a synthesized,
source-cited answer instead of crawling page by page, append the `?ask=`
query parameter to any page URL on this site:

    /guides/quickstart?ask=how+do+I+authenticate

Optional parameters:

- `&goal=<what-you-are-trying-to-do>` steers the answer toward your
  objective (e.g. `&goal=write+a+python+client`).
- `&version=<label>` scopes the answer to a mounted version when the
  portal publishes more than one.

The response is `text/markdown`: the answer followed by a `# Sources` list
of the portal pages it was grounded in. Status codes are the contract:

- `200` — the answer; `402` — the portal owner’s plan or answer credits are
  exhausted (surface this to your operator; do NOT retry); `429` — you are
  rate-limited; back off for the `Retry-After` seconds; `503` — the answer
  lane is temporarily unavailable; fall back to crawling the `.md` pages.

For the full corpus map read `llms.txt` at the site root; for the tool
surface (search + page fetch as MCP tools) see `/mcp`.
