weaviate/weaviate · error

failed to extract timestamp prop, unsupported type '%T' for

Error message

failed to extract timestamp prop, unsupported type '%T' for prop '%s'

What it means

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.

Source

Thrown at adapters/repos/db/inverted/searcher.go:864

			parsed, err := time.Parse(time.RFC3339, t)
			if err != nil {
				return nil, fmt.Errorf("trying parse time as RFC3339 string: %w", err)
			}
			asInt64 = parsed.UnixMilli()

		case time.Time:
			asInt64 = t.UnixMilli()

		default:
			return nil, fmt.Errorf("expected value to be string or time.Time, got '%T'", value)
		}

		// if propType is a `valueDate`, we need to convert
		// it to ms before fetching. this is the format by
		// which our timestamps are indexed
		byteValue = []byte(strconv.FormatInt(asInt64, 10))
	default:
		return nil, fmt.Errorf(
			"failed to extract timestamp prop, unsupported type '%T' for prop '%s'", propType, propName)
	}

	return &propValuePair{
		value:              byteValue,
		prop:               propName,
		operator:           operator,
		hasFilterableIndex: HasFilterableIndexTimestampProp, // TODO text_rbm_inverted_index & with settings
		hasSearchableIndex: HasSearchableIndexTimestampProp, // TODO text_rbm_inverted_index & with settings
		Class:              class,
	}, nil
}

func (s *Searcher) extractTokenizableProp(prop *models.Property, propType schema.DataType,
	value interface{}, operator filters.Operator, class *models.Class,
) (*propValuePair, error) {
	valueString, ok := value.(string)
	if !ok {

View on GitHub (pinned to 75aa4b6d11)

Solutions

  1. Check the collection schema and confirm the property dataType is date (or the timestamp type you intend)
  2. Fix the filter path to target the correct date property
  3. Recreate/migrate the property with the correct dataType if the schema is wrong
  4. Use a value filter matching the actual propType (e.g. valueText for text props)

Example fix

// schema has createdAt as date — filter it, not a text field
// before
{"path":["note"],"valueDate":"2024-01-01T00:00:00Z"}
// after
{"path":["createdAt"],"valueDate":"2024-01-01T00:00:00Z"}
Defensive patterns

Strategy: validation

Validate before calling

func canTimestampFilter(propType string) bool {
  return propType == "date" || propType == "dateWithNano"
}
// check schema before building the filter
// prop, _ := schema.GetProperty(class, propName); assert prop.DataType[0] is date

Try / catch

pv, err := build(...)
if err != nil && strings.Contains(err.Error(), "failed to extract timestamp prop") {
  return fmt.Errorf("property %q does not support date filtering; check its dataType", propName)
}

Prevention

When it happens

Trigger: Applying a date/timestamp-style filter (path routed to extractTimestampProp via extractInternalProp) to a property whose dataType is text, int, bool, etc.

Common situations: 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.

Related errors


AI-assisted analysis of weaviate/weaviate@75aa4b6d11 (2026-09-04). Data as JSON: /api/errors/489bf54da1989cb9. Report an issue: GitHub.