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: v3.13.0)
Technically safe — no crash. The read path defaults missing fields to false:
https://github.com/weaviate/typescript-client/blob/main/src/collections/config/utils.ts#L485
asyncEnabled: v.asyncEnabled ? v.asyncEnabled : false,
But the value the client reports back is misleading. Every replicationConfig.asyncEnabled 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 (src/collections/configure/index.ts L189, L195, L201, L315, L321) still sends asyncEnabled to the server. The server silently drops it, so user intent is lost without any indication.
Recommended change
- Remove
asyncEnabled from the read-side ReplicationConfig type at src/collections/config/types/index.ts:77.
- Drop the default-to-false branch in
src/collections/config/utils.ts:485.
- Remove
asyncEnabled from the write-side configure options in src/collections/configure/index.ts (the parameter, the JSDoc, and the merge into the outgoing payload at L189–321).
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/typescript-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: v3.13.0)Technically safe — no crash. The read path defaults missing fields to
false:https://github.com/weaviate/typescript-client/blob/main/src/collections/config/utils.ts#L485
But the value the client reports back is misleading. Every
replicationConfig.asyncEnabledreturned 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 (
src/collections/configure/index.tsL189, L195, L201, L315, L321) still sendsasyncEnabledto the server. The server silently drops it, so user intent is lost without any indication.Recommended change
asyncEnabledfrom the read-sideReplicationConfigtype atsrc/collections/config/types/index.ts:77.src/collections/config/utils.ts:485.asyncEnabledfrom the write-side configure options insrc/collections/configure/index.ts(the parameter, the JSDoc, and the merge into the outgoing payload at L189–321).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/typescript-client-maintainers