{"record":{"id":"489bf54da1989cb9","repo":"weaviate/weaviate","slug":"failed-to-extract-timestamp-prop-unsupported-type","errorCode":null,"errorMessage":"failed to extract timestamp prop, unsupported type '%T' for prop '%s'","messagePattern":"failed to extract timestamp prop, unsupported type '%T' for prop '(.+?)'","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"adapters/repos/db/inverted/searcher.go","lineNumber":864,"sourceCode":"\t\t\tparsed, err := time.Parse(time.RFC3339, t)\n\t\t\tif err != nil {\n\t\t\t\treturn nil, fmt.Errorf(\"trying parse time as RFC3339 string: %w\", err)\n\t\t\t}\n\t\t\tasInt64 = parsed.UnixMilli()\n\n\t\tcase time.Time:\n\t\t\tasInt64 = t.UnixMilli()\n\n\t\tdefault:\n\t\t\treturn nil, fmt.Errorf(\"expected value to be string or time.Time, got '%T'\", value)\n\t\t}\n\n\t\t// if propType is a `valueDate`, we need to convert\n\t\t// it to ms before fetching. this is the format by\n\t\t// which our timestamps are indexed\n\t\tbyteValue = []byte(strconv.FormatInt(asInt64, 10))\n\tdefault:\n\t\treturn nil, fmt.Errorf(\n\t\t\t\"failed to extract timestamp prop, unsupported type '%T' for prop '%s'\", propType, propName)\n\t}\n\n\treturn &propValuePair{\n\t\tvalue:              byteValue,\n\t\tprop:               propName,\n\t\toperator:           operator,\n\t\thasFilterableIndex: HasFilterableIndexTimestampProp, // TODO text_rbm_inverted_index & with settings\n\t\thasSearchableIndex: HasSearchableIndexTimestampProp, // TODO text_rbm_inverted_index & with settings\n\t\tClass:              class,\n\t}, nil\n}\n\nfunc (s *Searcher) extractTokenizableProp(prop *models.Property, propType schema.DataType,\n\tvalue interface{}, operator filters.Operator, class *models.Class,\n) (*propValuePair, error) {\n\tvalueString, ok := value.(string)\n\tif !ok {","sourceCodeStart":846,"sourceCodeEnd":882,"githubUrl":"https://github.com/weaviate/weaviate/blob/75aa4b6d11f8818305aafd4440b4e32794f7ca04/adapters/repos/db/inverted/searcher.go#L846-L882","documentation":"Final catch-all in extractTimestampProp: the property's schema dataType is not one of the timestamp-capable types the switch handles, so no value extraction is attempted at all. It reports both the unsupported propType and the property name.","triggerScenarios":"Applying a date/timestamp-style filter (path routed to extractTimestampProp via extractInternalProp) to a property whose dataType is text, int, bool, etc.","commonSituations":"Schema drift — property was created with dataType text/phoneNumber but client filters it as a date; typos in property routing; referencing _additional or meta fields as dates.","solutions":["Check the collection schema and confirm the property dataType is date (or the timestamp type you intend)","Fix the filter path to target the correct date property","Recreate/migrate the property with the correct dataType if the schema is wrong","Use a value filter matching the actual propType (e.g. valueText for text props)"],"exampleFix":"// schema has createdAt as date — filter it, not a text field\n// before\n{\"path\":[\"note\"],\"valueDate\":\"2024-01-01T00:00:00Z\"}\n// after\n{\"path\":[\"createdAt\"],\"valueDate\":\"2024-01-01T00:00:00Z\"}","handlingStrategy":"validation","validationCode":"func canTimestampFilter(propType string) bool {\n  return propType == \"date\" || propType == \"dateWithNano\"\n}\n// check schema before building the filter\n// prop, _ := schema.GetProperty(class, propName); assert prop.DataType[0] is date","typeGuard":null,"tryCatchPattern":"pv, err := build(...)\nif err != nil && strings.Contains(err.Error(), \"failed to extract timestamp prop\") {\n  return fmt.Errorf(\"property %q does not support date filtering; check its dataType\", propName)\n}","preventionTips":["Fetch the collection schema and map each property to its allowed filter value type","Keep client-side schema caches in sync after migrations","Route filters to extractors matching the actual dataType"],"tags":["go","schema","inverted-index","unsupported-type"],"backgroundTag":"unsupported-property-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"}