{"record":{"id":"d9fcb4bac0b6a1bd","repo":"weaviate/weaviate","slug":"unknown-primitive-data-type-s","errorCode":null,"errorMessage":"unknown primitive data type '%s'","messagePattern":"unknown primitive data type '(.+?)'","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"entities/schema/data_types.go","lineNumber":269,"sourceCode":"\t\t\t\treturn &propertyDataType{\n\t\t\t\t\tkind:          PropertyKindPrimitive,\n\t\t\t\t\tprimitiveType: dt,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t}\n\t\tfor _, dt := range NestedDataTypes {\n\t\t\tif dataType[0] == dt.String() {\n\t\t\t\treturn &propertyDataType{\n\t\t\t\t\tkind:       PropertyKindNested,\n\t\t\t\t\tnestedType: dt,\n\t\t\t\t}, nil\n\t\t\t}\n\t\t}\n\t\tif len(dataType[0]) == 0 {\n\t\t\treturn nil, fmt.Errorf(\"dataType cannot be an empty string\")\n\t\t}\n\t\tif !IsRefDataType(dataType) {\n\t\t\treturn nil, fmt.Errorf(\"unknown primitive data type '%s'\", dataType[0])\n\t\t}\n\t}\n\n\t/* implies len(dataType) > 1, or first element is a class already */\n\tvar classes []ClassName\n\n\tfor _, someDataType := range dataType {\n\t\tclassName, err := ValidateQualifiedClassName(someDataType)\n\t\tif err != nil {\n\t\t\treturn nil, err\n\t\t}\n\n\t\tif beloningToClass != className {\n\t\t\tclass, err := authorizedGetClass(className.String())\n\t\t\tif err != nil {\n\t\t\t\treturn nil, err\n\t\t\t}\n\t\t\tif !relaxCrossRefValidation && class == nil {","sourceCodeStart":251,"sourceCodeEnd":287,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/entities/schema/data_types.go#L251-L287","documentation":"After failing to match the dataType against known primitives and enum types, the resolver checks whether it is a reference (class) type. If it is not a recognized reference data type either, the value is simply not a data type this schema knows, and the resolver returns this error.","triggerScenarios":"Passing a dataType string that is neither a primitive (text, int, number, boolean, date, geoCoordinates, blob, etc.), a known enum, nor a reference to an existing class — e.g. dataType: [\"string\"] (removed/renamed primitive) or a typo like [\"txet\"].","commonSituations":"Migrating from older Weaviate versions where \"string\" and \"text\" had different semantics and the wrong one is sent; typos in dataType; referencing a target class that was never created (for cross-refs the class name must match); auto-generated clients using an outdated type list.","solutions":["Use a valid primitive type name (text, int, number, boolean, date, geoCoordinates, blob, uuid, etc.)","For references, ensure the dataType entry exactly matches an existing class name (uppercase first letter)","Check for legacy type names like \"string\" and migrate them to \"text\" where appropriate","GET /v1/schema to confirm the referenced class exists"],"exampleFix":"// before\nProperty{\"name\": \"body\", \"dataType\": []string{\"string\"}}\n// after\nProperty{\"name\": \"body\", \"dataType\": []string{\"text\"}}","handlingStrategy":"validation","validationCode":"var knownPrimitives = map[string]bool{\n\t\"text\": true, \"int\": true, \"number\": true, \"boolean\": true,\n\t\"date\": true, \"dateWithNano\": true, \"geoCoordinates\": true,\n\t\"blob\": true, \"uuid\": true, \"phoneNumber\": true, \"object\": true,\n}\nfunc validDataTypeName(dt string, classes map[string]bool) bool {\n\treturn knownPrimitives[dt] || classes[dt]\n}","typeGuard":null,"tryCatchPattern":"pdt, err := schema.FindPropertyDataTypeWithRefs(prop.DataType, resolver)\nif err != nil {\n\treturn fmt.Errorf(\"property %q has unknown dataType %v: %w\", prop.Name, prop.DataType, err)\n}","preventionTips":["Keep a client-side list of valid primitive type names","Migrate legacy \"string\" dataType to \"text\"","Create referenced classes before referencing them in dataType","Validate dataType against GET /v1/schema before submitting"],"tags":["go","schema","data-types","validation"],"backgroundTag":"unknown-primitive-data-type","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"}