{"record":{"id":"8d5465886401dbda","repo":"weaviate/weaviate","slug":"element-d-mismatched-data-type-s-expected-8d5465","errorCode":null,"errorMessage":"element [%d]: mismatched data type - '%s' expected, got reference","messagePattern":"element \\[(.+?)\\]: mismatched data type - '(.+?)' expected, got reference","errorType":"validation","errorClass":null,"httpStatus":422,"severity":"error","filePath":"usecases/objects/auto_schema.go","lineNumber":329,"sourceCode":"\t\t\t\t\tdeterminedDataType = schema.DataTypeTextArray\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\t\t\t\tif determinedDataType == schema.DataTypeUUIDArray && (dataType == schema.DataTypeDateArray || dataType == schema.DataTypeTextArray) {\n\t\t\t\t\tdeterminedDataType = schema.DataTypeTextArray\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\tif isRef {\n\t\t\t\t\treturn nil, fmt.Errorf(\"element [%d]: mismatched data type - reference expected, got '%s'\",\n\t\t\t\t\t\ti, asSingleDataType(dataType))\n\t\t\t\t}\n\t\t\t\tif dataType != determinedDataType {\n\t\t\t\t\treturn nil, fmt.Errorf(\"element [%d]: mismatched data type - '%s' expected, got '%s'\",\n\t\t\t\t\t\ti, asSingleDataType(determinedDataType), asSingleDataType(dataType))\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif !isRef {\n\t\t\t\t\treturn nil, fmt.Errorf(\"element [%d]: mismatched data type - '%s' expected, got reference\",\n\t\t\t\t\t\ti, asSingleDataType(determinedDataType))\n\t\t\t\t}\n\t\t\t\trefDataTypes = append(refDataTypes, refDataType)\n\t\t\t}\n\t\t}\n\t\tif len(refDataTypes) > 0 {\n\t\t\treturn refDataTypes, nil\n\t\t}\n\t\treturn []schema.DataType{determinedDataType}, nil\n\tcase nil:\n\t\treturn fallbackDataType, nil\n\tdefault:\n\t\tallowed := []string{\n\t\t\tschema.DataTypeText.String(),\n\t\t\tschema.DataTypeNumber.String(),\n\t\t\tschema.DataTypeInt.String(),\n\t\t\tschema.DataTypeBoolean.String(),\n\t\t\tschema.DataTypeDate.String(),","sourceCodeStart":311,"sourceCodeEnd":347,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/usecases/objects/auto_schema.go#L311-L347","documentation":"The reverse of the mixed-scalar case: the first element of an array property resolved to a scalar type (int, text, number, bool, date, etc.), but a later element was recognized as a reference to another collection. Auto-schema cannot mix references and scalars in one property, so it fails naming the scalar type it expected.","triggerScenarios":"POST /v1/objects with an array property whose first element is a scalar and a later element is a reference, e.g. {\"items\": [\"text\", {\"beacon\": \"weaviate://Product/abc\"}]}.","commonSituations":"Accidentally including beacon objects in a text/keyword array; join/merge logic appending foreign keys to an existing string array; migration scripts that reuse one field for both IDs and labels.","solutions":["Remove the reference element or move references to a dedicated reference property.","Ensure every element in the array is the scalar type inferred from the first element.","Explicitly declare the property in the schema (scalar dataType) so reference values are rejected earlier with clearer validation.","Audit payload-building code for places where beacons/objects can leak into scalar arrays."],"exampleFix":"// before (scalar first, reference later)\n{\"items\": [\"label\", {\"beacon\": \"weaviate://Product/abc\"}]}\n// after\n{\"items\": [\"label\"], \"productRefs\": [{\"beacon\": \"weaviate://Product/abc\"}]}","handlingStrategy":"validation","validationCode":"func noReferencesInScalarArray(arr []interface{}) bool {\n\tfor _, el := range arr {\n\t\tif _, isMap := el.(map[string]interface{}); isMap { return false }\n\t}\n\treturn true\n}","typeGuard":"func isReferenceValue(v interface{}) bool {\n\tm, ok := v.(map[string]interface{})\n\treturn ok && m[\"beacon\"] != nil\n}","tryCatchPattern":null,"preventionTips":["Keep reference values out of scalar array properties.","Use dedicated reference properties for cross-references.","Audit data-merge code paths where beacons can leak into scalar arrays."],"tags":["auto-schema","cross-references","type-mismatch","arrays","weaviate"],"backgroundTag":"schema-validation-failed","analyzedSha":"75aa4b6d11f8818305aafd4440b4e32794f7ca04","analyzedAt":"2026-09-04T14:58:20.392Z","contentChangedAt":"2026-09-04T14:58:20.392Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}