Skip to main content
Go to documentation:
⌘U
Weaviate Database

Develop AI applications using Weaviate's APIs and tools

Deploy

Deploy, configure, and maintain Weaviate Database

Query Agent

Run agentic search over your Weaviate Cloud collections

Weaviate Cloud

Manage and scale Weaviate in the cloud

Engram

Persistent memory for LLM agents and applications

Additional resources

Integrations
Weaviate Academy

Need help?

Weaviate LogoAsk AI Assistant⌘K
Support
Community Forum
Contributor guide

Collection configuration messages

Messages on this page are deprecation warnings from the Weaviate Python client. Nothing has failed: the collection was created or updated as you asked. The way the request described its vectors is on its way out, so the fix is always a rewrite of the configuration, never a change to your data. If your message is not here, the message index lists the other groups.

Not seeing the warning?

Python hides DeprecationWarning raised inside a library by default. Run with python -W default::DeprecationWarning to see them all.

Deprecated vector configuration arguments

Message ids

py-dep017py-dep023py-dep024py-dep025

Raised by

Python client

Kind

Deprecation

What it means

The collection was created or updated, but the vectorizer_config and vector_index_config arguments will stop working.

The fix

Describe the model and the index inside one vector_config definition.

What you see

One or more of these warnings when you create or update a collection:

Dep024: You are using the `vectorizer_config` argument in `collection.config.create()`, which is deprecated.
Use the `vector_config` argument instead.

Dep025: You are using the `vector_index_config` argument in `collection.config.create()`, which is deprecated.
Use the `vector_config` argument instead defining `vector_index_config` as a sub-argument.

Dep017: You are using the `vector_index_config` argument in the `collection.config.update()` method, which is deprecated.
Use the `vector_config` argument instead.

Dep023: You are using the `vectorizer_config` argument in the `collection.config.update()` method with a collection with named vectors, which is deprecated.
Use the `vector_config` argument instead.

Why it happens

A collection used to describe its embeddings as two independent settings: the model that produces the vector, and the index that stores it. That shape cannot express a collection with several differently configured vectors, which Weaviate supports. Both settings now live inside a single vector definition, and a collection holds one or more of them, each with a name. The old arguments still work, and a collection created with them keeps the older single-vector shape.

How to fix it

Move the model and the index settings into one vector definition when you create the collection:

from weaviate.classes.config import Configure

client.collections.create(
"Article",
vector_config=Configure.Vectors.text2vec_weaviate(
vector_index_config=Configure.VectorIndex.hnsw(),
),
)

Updates name the vector they change. A collection created with the current argument, and no explicit vector name, has a single vector called default:

from weaviate.classes.config import Reconfigure

client.collections.get("Article").config.update(
vector_config=Reconfigure.Vectors.update(
name="default",
vector_index_config=Reconfigure.VectorIndex.hnsw(ef=128),
),
)
An existing collection is not converted in place

A collection created with the deprecated arguments keeps the older shape, so updating it raises the warning until the collection is recreated. The two update forms are not interchangeable, and the wrong one fails rather than warns. What you got back tells you which shape you have:

What you got backWhat it meansWhat to do
KeyError: 'vectorConfig'No named vectors: the collection was created with the deprecated argumentsKeep the deprecated argument for this collection until you recreate it
KeyError: 'vectorIndexConfig'The collection has named vectors, so the deprecated argument has nothing to addressSwitch this call to the current form
WeaviateInvalidInputError: Invalid input provided: Vector config with name default does not exist in the existing vector config.The collection has named vectors, but none by that nameUse the name the collection gave its vector; it is only default if none was set

Change the code that creates collections first: that is the form that will stop working.

Rewriting a collection definition does not re-embed anything and does not touch stored vectors.

Learn more

Deprecated named vector syntax

Message id

py-dep026

Raised by

Python client

Kind

Deprecation

What it means

The vector was added, but the Configure.NamedVectors builders are aliases on their way out.

The fix

Use Configure.Vectors, or Configure.MultiVectors for a multi-vector embedding. The arguments are unchanged.

What you see

A warning when you add a vector to an existing collection, quoted exactly as the client prints it, stray backtick included. The vector name in it is your own:

Dep026: You are using the named vector syntax for vector title_vector, e.g. `Configure.NamedVectors` in `collection.config.add_vector()`, which is deprecated.
Use `Configure.Vectors` or `Configure.MultiVectors` instead.`

Why it happens

When named vectors were introduced they had their own set of builders, kept apart from the single-vector ones. Every vector is now a named vector, so the two sets were merged into one, split instead by whether the vector is a single vector or a multi-vector.

How to fix it

from weaviate.classes.config import Configure

collection = client.collections.get("Article")
collection.config.add_vector(
vector_config=Configure.Vectors.text2vec_weaviate(
name="title_vector",
source_properties=["title"],
),
)

For a multi-vector embedding, such as ColBERT or ColPali, use the multi-vector builders instead. If your warning names the encoding argument rather than the named vector syntax, it is the other message that ships under this same id: see deprecated multi-vector index settings.

Learn more

Deprecated multi-vector index settings

Message ids

py-dep026py-dep027

Raised by

Python client

Kind

Deprecation

What it means

The collection was created, but multi-vector settings placed on the index will stop being accepted there.

The fix

Move multi_vector and encoding off the index configuration and onto the vector definition.

What you see

One or both of these warnings when you create a collection with a multi-vector embedding. You get both at once if you set an encoding inside the index configuration, because that nests one deprecated argument inside the other:

Dep027: You are using the `multi_vector` argument in `Configure.VectorIndex.hnsw()`, which is deprecated.
Use the `multi_vector` argument inside `Configure.MultiVectors.module()` instead.

Dep026: You are using the `encoding` argument in `Configure.VectorIndex.MultiVectors.multi_vector()`, which is deprecated.
Use the `encoding` argument inside `Configure.MultiVectors.module()` instead.
The path in the second message is wrong

It names Configure.VectorIndex.MultiVectors, plural, which does not exist; the real one is Configure.VectorIndex.MultiVector, singular. Copying the path out of the warning fails. The working form is in the snippets below.

Why it happens

Whether a vector is a multi-vector is a property of the vector, not of the index that stores it, and the multi-vector builder you chose already implies it. Declaring it a second time on the index left two places that could disagree, so the setting moved onto the vector definition.

How to fix it

Move the setting onto the vector definition. The self_provided builder below stands for whichever multi-vector builder you use:

from weaviate.classes.config import Configure

client.collections.create(
"Document",
vector_config=Configure.MultiVectors.self_provided(
name="page_vector",
multi_vector_config=Configure.VectorIndex.MultiVector.multi_vector(),
vector_index_config=Configure.VectorIndex.hnsw(),
),
)

An encoding such as MUVERA moves the same way, onto the vector definition:

from weaviate.classes.config import Configure

client.collections.create(
"Document",
vector_config=Configure.MultiVectors.self_provided(
name="page_vector",
encoding=Configure.VectorIndex.MultiVector.Encoding.muvera(),
vector_index_config=Configure.VectorIndex.hnsw(),
),
)

Learn more

Questions and feedback

Was this page helpful?