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
- Remove
asyncEnabled from _ReplicationConfigCreate and _ReplicationConfigUpdate (weaviate/collections/classes/config.py L336, L343, L350–352).
- Remove
async_enabled from the _ReplicationConfig dataclass (same file, L1834) and drop the parsing line in config_methods.py L380.
- 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
Background
Weaviate is removing the
replicationConfig.asyncEnabledfield from collection schemas. This is the server-side commit weaviate/weaviate@cef789345e (part of weaviate/weaviate#11214). After it ships, the field will:POST /v1/schemarequest bodies (Go'sencoding/jsonignores unknown fields)GET /v1/schemaresponse bodiesThe post-removal behaviour is governed by the existing global
ASYNC_REPLICATION_DISABLEDruntime override: for any class withfactor > 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
But the value the client reports back is misleading. Every
replication_config.async_enabledreturned bycollection.config.get()will beFalse, even when the server is actually running async replication (the new default for any class withfactor > 1).The write path (
weaviate/collections/classes/config.pyaround L336–352) still sendsasyncEnabledto the server. The server silently drops it, so user intent is lost without any indication.Recommended change
asyncEnabledfrom_ReplicationConfigCreateand_ReplicationConfigUpdate(weaviate/collections/classes/config.pyL336, L343, L350–352).async_enabledfrom the_ReplicationConfigdataclass (same file, L1834) and drop the parsing line inconfig_methods.pyL380._ReplicationConfigCreate's docstring (around L2788–2800) to remove theasync_enabledparameter, or keep the kwarg but warnDeprecationWarningand ignore it.The server change is backward compatible at the wire level (existing classes with
asyncEnabledpersisted 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 misleadingFalse.Target server version
Weaviate v1.38 (the release that includes #11214).
cc @weaviate/python-client-maintainers