langgenius/dify · error · ValueError
Vector store {vector_type} is not supported.
Error message
Vector store {vector_type} is not supported. What it means
ValueError raised in the create-dataset-index migration when vector_type does not match upper_collection_vector_types, is not QDRANT, and does not match lower_collection_vector_types. The migration only supports a known set of vector backends; anything else is rejected before computing a collection name.
Source
Thrown at api/commands/vector.py:229
collection_name = Dataset.gen_collection_name_by_id(dataset_id)
elif vector_type == VectorType.QDRANT:
if dataset.collection_binding_id:
dataset_collection_binding = db.session.execute(
select(DatasetCollectionBinding).where(
DatasetCollectionBinding.id == dataset.collection_binding_id
)
).scalar_one_or_none()
if dataset_collection_binding:
collection_name = dataset_collection_binding.collection_name
else:
raise ValueError("Dataset Collection Binding not found")
else:
collection_name = Dataset.gen_collection_name_by_id(dataset_id)
elif vector_type in lower_collection_vector_types:
collection_name = Dataset.gen_collection_name_by_id(dataset_id).lower()
else:
raise ValueError(f"Vector store {vector_type} is not supported.")
index_struct_dict = {"type": vector_type, "vector_store": {"class_prefix": collection_name}}
dataset.index_struct = json.dumps(index_struct_dict)
with Session(db.engine) as session:
vector = Vector(dataset, session=session)
click.echo(f"Migrating dataset {dataset.id}.")
try:
vector.delete()
click.echo(
click.style(f"Deleted vector index {collection_name} for dataset {dataset.id}.", fg="green")
)
except Exception as e:
click.echo(
click.style(
f"Failed to delete vector index {collection_name} for dataset {dataset.id}.", fg="red"
)
)View on GitHub (pinned to ef8544b173)
Solutions
- Check VectorType enum values and the upper/lower collection type sets to confirm supported backends.
- Pass a supported vector type (e.g. one of the configured upper/lower types or qdrant).
- If a new backend should be supported, add it to the appropriate collection-type set with its naming convention.
- Print upper_collection_vector_types and lower_collection_vector_types at startup to verify contents.
Example fix
# before flask create-dataset-index --vector-type weaviate # not in any set -> raises # after - use a supported type, or extend the set flask create-dataset-index --vector-type qdrant # or in code: upper_collection_vector_types.add(VectorType.WEAVIATE)
Defensive patterns
Strategy: validation
Validate before calling
def is_supported_vector_type(vector_type: str) -> bool:
return (
vector_type in upper_collection_vector_types
or vector_type == VectorType.QDRANT
or vector_type in lower_collection_vector_types
) Type guard
def is_supported_vector_type(vector_type: str) -> bool:
return (
vector_type in upper_collection_vector_types
or vector_type == VectorType.QDRANT
or vector_type in lower_collection_vector_types
) Try / catch
try:
migrate_dataset_vector(dataset, vector_type)
except ValueError as exc:
if "not supported" in str(exc):
click.echo(f"Unsupported vector type: {vector_type}", err=True)
raise click.Abort()
raise Prevention
- Validate --vector-type against the union of supported sets before the loop.
- When adding a VectorType member, register it in the appropriate collection-type set.
- Surface the list of supported types in CLI --help.
- Print upper/lower collection sets at startup in verbose mode.
When it happens
Trigger: Triggered when the --vector-type option (or configured vector type) passed to the command is not in the union of upper_collection_vector_types, VectorType.QDRANT, or lower_collection_vector_types.
Common situations: A new vector store type was added to VectorType but not to the migration's collection-type sets, or the operator passed an unsupported/typo'd vector type flag.
Related errors
- Builtin RBAC role not found for tenant={tenant_id}, legacy_r
- Unsupported legacy workspace role: {legacy_role}
- Workspace owner not found for tenant={current_tenant_id}
- Unsupported legacy dataset permission: {permission}
- Dataset Collection Binding not found
AI-assisted analysis of langgenius/dify@ef8544b173 (2026-08-12).
Data as JSON: /api/errors/69bfd4c65822ae03.
Report an issue: GitHub.