Skip to content

feat: deprecate async_enabled replication argument removed server-side#2050

Open
LijuanTang94 wants to merge 1 commit into
weaviate:mainfrom
LijuanTang94:fix/remove-deprecated-async-enabled
Open

feat: deprecate async_enabled replication argument removed server-side#2050
LijuanTang94 wants to merge 1 commit into
weaviate:mainfrom
LijuanTang94:fix/remove-deprecated-async-enabled

Conversation

@LijuanTang94
Copy link
Copy Markdown

Summary

Closes #2047

The asyncEnabled field was removed from the Weaviate server schema in v1.38 (weaviate/weaviate#11214). The client still accepted async_enabled and forwarded it on the write path, so the server silently dropped it — the user's intent was lost without any indication.

This PR adds a DeprecationWarning so the silent loss becomes visible, following the exact precedent the maintainers established for max_workers / alive_nodes_checking_frequency (Dep029) when those async_config fields were removed in v1.37.3.

Approach

I deliberately chose deprecate-and-warn over hard removal (the issue's step 3 offers both):

  • Removing the public async_enabled kwarg outright would break any existing user code calling Configure.replication(async_enabled=...).
  • The existing Dep029 handling keeps the kwarg + keeps forwarding (server drops it) + warns. This PR mirrors that pattern for consistency and zero breakage.

If the maintainers prefer to also drop the read-path field (_ReplicationConfig.async_enabled + the parser in config_methods.py, which now always reports a misleading False), I'm happy to extend the PR — I left it out to keep this change focused and non-breaking, and because removing a read attribute is a larger compatibility decision.

Changes

  • weaviate/warnings.py — new Dep030 deprecation warning
  • weaviate/collections/classes/config.pyConfigure.replication and Reconfigure.replication emit the warning when async_enabled is passed; docstrings updated
  • test/collection/test_config.py — tests that the warning fires when async_enabled is passed and stays silent otherwise (both factories)

Testing

pytest test/collection/test_config.py test/collection/test_config_update.py test/collection/test_config_methods.py
# 210 passed
ruff check / ruff format --check   # clean
flake8 (+ pydoclint, flake8-docstrings)  # clean

The `asyncEnabled` field was removed from the Weaviate server schema in
v1.38. The client still accepted `async_enabled` and forwarded it, so the
server silently dropped it and the user's intent was lost without any
indication (issue weaviate#2047).

Following the existing precedent for `max_workers` /
`alive_nodes_checking_frequency` (Dep029), the `async_enabled` argument in
`Configure.replication` / `Reconfigure.replication` now emits a
`DeprecationWarning` (Dep030) when passed, while remaining functional
against older servers. Docstrings are updated to document the removal.

Closes weaviate#2047
Copy link
Copy Markdown

@orca-security-eu orca-security-eu Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Orca Security Scan Summary

Status Check Issues by priority
Passed Passed Infrastructure as Code high 0   medium 0   low 0   info 0 View in Orca
Passed Passed SAST high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Secrets high 0   medium 0   low 0   info 0 View in Orca
Passed Passed Vulnerabilities high 0   medium 0   low 0   info 0 View in Orca

@weaviate-git-bot
Copy link
Copy Markdown

To avoid any confusion in the future about your contribution to Weaviate, we work with a Contributor License Agreement. If you agree, you can simply add a comment to this PR that you agree with the CLA so that we can merge.

beep boop - the Weaviate bot 👋🤖

PS:
Are you already a member of the Weaviate Forum?

@LijuanTang94
Copy link
Copy Markdown
Author

LijuanTang94 commented May 31, 2026 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

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

2 participants