{"record":{"id":"237e32c697de4a25","repo":"cocoindex-io/cocoindex","slug":"vectorschemaprovider-is-only-supported-for-numpy-n","errorCode":null,"errorMessage":"VectorSchemaProvider is only supported for NumPy ndarray type. Got type: {python_type}","messagePattern":"VectorSchemaProvider is only supported for NumPy ndarray type\\. Got type: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"python/cocoindex/connectors/falkordb/_target.py","lineNumber":282,"sourceCode":"        if isinstance(annotation, FalkorType):\n            return _TypeMapping(annotation.falkor_type, annotation.encoder)\n\n    base_type = type_info.base_type\n\n    if base_type in _LEAF_TYPE_MAPPINGS:\n        return _LEAF_TYPE_MAPPINGS[base_type]\n\n    if base_type is np.ndarray:\n        if vector_schema is None:\n            raise ValueError(\"VectorSchemaProvider is required for NumPy ndarray type.\")\n        if vector_schema.size <= 0:\n            raise ValueError(f\"Invalid vector dimension: {vector_schema.size}\")\n        return _TypeMapping(\n            falkor_type=f\"vector<float32, {vector_schema.size}>\",\n            encoder=_ndarray_to_list,\n        )\n    elif vector_schema is not None:\n        raise ValueError(\n            \"VectorSchemaProvider is only supported for NumPy ndarray type. \"\n            f\"Got type: {python_type}\"\n        )\n\n    if isinstance(type_info.variant, (SequenceType,)):\n        return _ARRAY_MAPPING\n    if isinstance(type_info.variant, (MappingType, RecordType, UnionType, AnyType)):\n        return _OBJECT_MAPPING\n\n    return _OBJECT_MAPPING\n\n\n# ---------------------------------------------------------------------------\n# ColumnDef\n# ---------------------------------------------------------------------------\n\n\nclass ColumnDef(NamedTuple):","sourceCodeStart":264,"sourceCodeEnd":300,"githubUrl":"https://github.com/cocoindex-io/cocoindex/blob/e84aa99b3292c5270a4b313b2a7137ad9ce8ab3b/python/cocoindex/connectors/falkordb/_target.py#L264-L300","documentation":"`_get_type_mapping` only accepts a `VectorSchemaProvider` for columns annotated as `numpy.ndarray`. Supplying one for any other Python type (e.g. `list[float]`, `str`) is contradictory — the provider would never be used — so the library raises ValueError naming the offending type.","triggerScenarios":"Building a `TableSchema.from_class` where `column_overrides` maps a non-ndarray field (e.g. a `list[float]` embedding or a scalar field) to a `VectorSchemaProvider`.","commonSituations":"Migrating a schema from `list[float]` embeddings to ndarray without dropping the old override; copy-pasting a column_overrides dict where field names were renamed; applying a shared overrides dict to multiple record types.","solutions":["Remove the `VectorSchemaProvider` from `column_overrides` for non-ndarray fields.","Change the field annotation to `np.ndarray` if you intended a vector column, keeping the provider.","If the field is `list[float]`, rely on the default array mapping instead of a vector provider."],"exampleFix":"// before\ncolumn_overrides={\"emb\": VectorSchemaProvider(dimension=384)}  # field annotated list[float]\n// after\n# either annotate: emb: np.ndarray\n# or drop the override:\ncolumn_overrides={}","handlingStrategy":"type-guard","validationCode":"for name, provider in overrides.items():\n    ann = typing.get_type_hints(Row)[name]\n    if not (ann is np.ndarray) and isinstance(provider, res_schema.VectorSchemaProvider):\n        raise ValueError(f\"VectorSchemaProvider only valid for np.ndarray field {name!r}\")","typeGuard":"def expects_vector_schema(ann: object) -> bool:\n    return ann is np.ndarray","tryCatchPattern":"try:\n    schema = await falkordb.TableSchema.from_class(Row, column_overrides=overrides)\nexcept ValueError as e:\n    if \"only supported for NumPy ndarray\" in str(e):\n        logging.error(\"Remove vector overrides from non-ndarray fields: %s\", e)\n    raise","preventionTips":["Keep overrides minimal — one entry per ndarray vector field.","Annotate embedding fields as np.ndarray consistently across the codebase.","Type-check the overrides dict against the record's fields in tests."],"tags":["python","falkordb","vector","type-mismatch"],"backgroundTag":"type-mismatch","analyzedSha":"e84aa99b3292c5270a4b313b2a7137ad9ce8ab3b","analyzedAt":"2026-09-08T15:59:19.997Z","contentChangedAt":"2026-09-08T15:59:19.997Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}