pypi / pymilvus
pymilvus
What changed in pymilvus 2 to 3, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-18.
3 breaking1 security15 new APIs and options1 performance6 behavior and defaults11 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initpymilvus 332 changes
Breaking changes 3
Empty binary-vector lists now raise a parameter error instead of leaking an IndexError.
Rejects oversized or non-positive target_size values.
Adding a function field now requires bound index parameters.
Security 1
Uploads use safer per-upload options, lower default concurrency, byte-level progress, and request-local concurrent-upload state.
New APIs and options 14
Adds builders for Bloom filters and Roaring bitmaps for membership filtering.
Adds APIs for observing the compaction lifecycle.
Adds scalable upload policies for Volume.
Adds a method for altering collection schemas.
Adds role and user descriptions, including this role-alteration method.
Adds TEXT handling across schema validation, result decoding, and BulkWriter paths.
Adds a method for dropping function fields.
Adds synchronous and asynchronous support for data-salvage workflows.
Adds support for external field mappings and an add-field fallback for external collections.
Adds FunctionChain APIs and forwards every specified stage during search.
Adds this method to MilvusClient and AsyncMilvusClient.
Adds support for MinHash function fields.
Supports dynamically adding struct fields.
Adds an expression helper for XGBoost.
Performance 1
Avoids quadratic decoding for nullable-scalar results.
Behavior and default changes 6
Array query results are materialized as standard Python lists.
Null values are allowed in this column during insert.
Role descriptions are now included in the method's output.
Float inputs are now accepted for FP16 and BF16 vectors.
Exposes error classification; only connection-setup RPC failures are mapped to CONNECT_FAILED.
Query and Search Iterator V1 and V2 implementations move to the client layer, with ORM compatibility preserved and ORM deprecation warnings aligned.
Fixes and other changes 7
Configured connection timeouts are preserved during recovery.
Sync and async reconnects swap channels atomically, protect active RPCs, and cover retired-channel reclamation.
Adds search aggregation and correctly forwards the group_by_fields parameter.
External filtering is preserved when creating search iterators.
Booleans are rejected as sparse-vector values or indices, with improved validation errors.
Supports partial updates and preserves struct-array fields reconstructed from schema dictionaries.
BulkWriter supports struct-vector fields and skips payloads for null struct rows and null struct-vector subfields.
pymilvus 25 changes
New APIs and options 1
Supports an inclusive start option when dumping messages.
Fixes and other changes 4
Supports struct vector fields; remote upload path prefixes are preserved on Windows.
Async schema results are unpacked before collection optimization runs.
Primary-key, partition-key, and clustering-key metadata stays synchronized when fields are added to a schema.
Boolean values used as sparse-vector indices are rejected.