Skip to content

replicationConfig.asyncEnabled is being removed in Weaviate v1.38 — drop client-side field #2047

@jeroiraz

Description

@jeroiraz

Background

Weaviate is removing the replicationConfig.asyncEnabled field from collection schemas. This is the server-side commit weaviate/weaviate@cef789345e (part of weaviate/weaviate#11214). After it ships, the field will:

  • be silently dropped when present in POST /v1/schema request bodies (Go's encoding/json ignores unknown fields)
  • not appear in GET /v1/schema response bodies

The post-removal behaviour is governed by the existing global ASYNC_REPLICATION_DISABLED runtime override: for any class with factor > 1, async replication runs by default unless that flag is set.

Impact on weaviate-client (latest: v4.21.0)

Technically safe — no crash. The read path defaults missing fields to False:

https://github.com/weaviate/weaviate-python-client/blob/main/weaviate/collections/classes/config_methods.py#L380

async_enabled=schema["replicationConfig"].get("asyncEnabled", False),

But the value the client reports back is misleading. Every replication_config.async_enabled returned by collection.config.get() will be False, even when the server is actually running async replication (the new default for any class with factor > 1).

The write path (weaviate/collections/classes/config.py around L336–352) still sends asyncEnabled to the server. The server silently drops it, so user intent is lost without any indication.

Recommended change

  1. Remove asyncEnabled from _ReplicationConfigCreate and _ReplicationConfigUpdate (weaviate/collections/classes/config.py L336, L343, L350–352).
  2. Remove async_enabled from the _ReplicationConfig dataclass (same file, L1834) and drop the parsing line in config_methods.py L380.
  3. Update _ReplicationConfigCreate's docstring (around L2788–2800) to remove the async_enabled parameter, or keep the kwarg but warn DeprecationWarning and ignore it.

The server change is backward compatible at the wire level (existing classes with asyncEnabled persisted in their schemas are read fine — the field is dropped, not validated). So clients that don't ship the change still work; they just report a misleading False.

Target server version

Weaviate v1.38 (the release that includes #11214).

cc @weaviate/python-client-maintainers

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions