{"record":{"id":"762d1ff71eb92ea7","repo":"elastic/elasticsearch","slug":"vector-query-dimension-differs-from-field-dime-762d1f","errorCode":null,"errorMessage":"vector query dimension: {} differs from field dimension: {}","messagePattern":"vector query dimension: (.+?) differs from field dimension: (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"libs/simdvec/src/main/java/org/elasticsearch/simdvec/internal/PanamaFlatVectorScorer.java","lineNumber":55,"sourceCode":"    @Override\n    public RandomVectorScorerSupplier getRandomVectorScorerSupplier(\n        VectorSimilarityFunction similarityFunction,\n        KnnVectorValues vectorValues\n    ) throws IOException {\n        return switch (vectorValues.getEncoding()) {\n            case FLOAT32 -> new FloatScoringSupplier((FloatVectorValues) vectorValues, similarityFunction);\n            case BYTE -> new ByteScoringSupplier((ByteVectorValues) vectorValues, similarityFunction);\n        };\n    }\n\n    @Override\n    public RandomVectorScorer getRandomVectorScorer(\n        VectorSimilarityFunction similarityFunction,\n        KnnVectorValues vectorValues,\n        float[] target\n    ) throws IOException {\n        if (target.length != vectorValues.dimension()) {\n            throw new IllegalArgumentException(\n                \"vector query dimension: \" + target.length + \" differs from field dimension: \" + vectorValues.dimension()\n            );\n        }\n        return createScorer(similarityFunction, target, (FloatVectorValues) vectorValues);\n    }\n\n    @Override\n    public RandomVectorScorer getRandomVectorScorer(\n        VectorSimilarityFunction similarityFunction,\n        KnnVectorValues vectorValues,\n        byte[] target\n    ) throws IOException {\n        if (target.length != vectorValues.dimension()) {\n            throw new IllegalArgumentException(\n                \"vector query dimension: \" + target.length + \" differs from field dimension: \" + vectorValues.dimension()\n            );\n        }\n        return createScorer(similarityFunction, target, (ByteVectorValues) vectorValues);","sourceCodeStart":37,"sourceCodeEnd":73,"githubUrl":"https://github.com/elastic/elasticsearch/blob/db6a809a667c081ca1dc7500389d26975573215f/libs/simdvec/src/main/java/org/elasticsearch/simdvec/internal/PanamaFlatVectorScorer.java#L37-L73","documentation":"Thrown by PanamaFlatVectorScorer.getRandomVectorScorer (float[] overload) when the target query vector length does not equal the vector values' dimension. PanamaFlatVectorScorer is the default Lucene Panama-based (JEP 454 Foreign Function & Memory API) flat vector scorer for float32 fields. The check fires at scorer creation before any scoring loop.","triggerScenarios":"Calling getRandomVectorScorer(similarityFunction, vectorValues, target) where target is a float[] and target.length != vectorValues.dimension().","commonSituations":"Embedding model mismatch between index and query pipelines, or querying after a dims change without reindexing. This is the standard scorer used for float32 kNN when no specialized native scorer applies.","solutions":["Verify target.length equals the field dimension from the mapping.","Reindex documents if the embedding model changed.","Validate the query vector length before calling getRandomVectorScorer."],"exampleFix":"// before\nfloat[] target = embed384(text); // field dims:768\nscorer = panamaScorer.getRandomVectorScorer(sim, values, target);\n\n// after\nfloat[] target = embed768(text);\nscorer = panamaScorer.getRandomVectorScorer(sim, values, target);","handlingStrategy":"validation","validationCode":"if (target.length != vectorValues.dimension()) {\n    throw new IllegalArgumentException(\"target dims \" + target.length + \" != field dims \" + vectorValues.dimension());\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Validate target.length against the field dimension before calling getRandomVectorScorer.","Keep the query embedding model consistent with the indexing model.","Check the mapping dims and reindex if changed."],"tags":["vector-search","knn","dimension-mismatch","float32","panama","scorer","lucene"],"analyzedSha":"db6a809a667c081ca1dc7500389d26975573215f","analyzedAt":"2026-08-12T01:39:14.192Z","schemaVersion":2},"datasetVersion":"2026-08-12T12:17:08.281Z"}