{"record":{"id":"892b8562f1d918c0","repo":"cocoindex-io/cocoindex","slug":"invalid-vector-dimension-vector-schema-size-892b85","errorCode":null,"errorMessage":"Invalid vector dimension: {vector_schema.size}","messagePattern":"Invalid vector dimension: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"python/cocoindex/connectors/falkordb/_target.py","lineNumber":276,"sourceCode":"async def _get_type_mapping(\n    python_type: Any, *, vector_schema: res_schema.VectorSchema | None = None\n) -> _TypeMapping:\n    type_info = analyze_type_info(python_type)\n\n    for annotation in type_info.annotations:\n        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","sourceCodeStart":258,"sourceCodeEnd":294,"githubUrl":"https://github.com/cocoindex-io/cocoindex/blob/e84aa99b3292c5270a4b313b2a7137ad9ce8ab3b/python/cocoindex/connectors/falkordb/_target.py#L258-L294","documentation":"After confirming a `VectorSchemaProvider` exists for an ndarray column, `_get_type_mapping` validates that its dimension is positive. A dimension of 0 or negative cannot produce a valid FalkorDB vector type (`vector<float32, N>`), so the library raises ValueError.","triggerScenarios":"Passing `VectorSchemaProvider(dimension=0)` or a negative dimension (e.g. a dimension computed from an empty list length or an unset config variable) in `column_overrides` for an `np.ndarray` field, then building the schema via `from_class`.","commonSituations":"Reading the dimension from a config/env var that resolves to 0; computing `len(model_dims.get(name, []))` on a missing entry; typo like `dimension=-1` as a placeholder never replaced.","solutions":["Set the provider dimension to a positive integer matching the embedding model output, e.g. `VectorSchemaProvider(dimension=768)`.","If the dimension is computed, assert it before constructing the schema: `assert dim > 0`.","Log/inspect the value passed as `dimension` — trace where 0/negative came from."],"exampleFix":"// before\nres_schema.VectorSchemaProvider(dimension=len(embedding))  # embedding may be empty\n// after\ndim = len(embedding) or 384\nassert dim > 0\nres_schema.VectorSchemaProvider(dimension=dim)","handlingStrategy":"validation","validationCode":"dim = EMBEDDING_DIM  # from config/model\nif not isinstance(dim, int) or dim <= 0:\n    raise ValueError(f\"Embedding dimension must be a positive int, got {dim!r}\")\nprovider = res_schema.VectorSchemaProvider(dimension=dim)","typeGuard":null,"tryCatchPattern":"try:\n    schema = await falkordb.TableSchema.from_class(Row, column_overrides=overrides)\nexcept ValueError as e:\n    if \"Invalid vector dimension\" in str(e):\n        logging.error(\"Check the dimension passed to VectorSchemaProvider: %s\", e)\n    raise","preventionTips":["Hardcode the model's known output dimension as a constant.","Assert dimension > 0 at config load time, not at schema build time.","Never derive dimension from len() of a possibly-empty sample."],"tags":["python","falkordb","vector","validation"],"backgroundTag":"value-out-of-range","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"}