go-redis/redis · error

FT.HYBRID: unsupported vector type %T

Error message

FT.HYBRID: unsupported vector type %T

What it means

Error "FT.HYBRID: unsupported vector type %T" thrown in go-redis/redis.

Source

Thrown at search_commands.go:3774

	if v == nil {
		return nil, fmt.Errorf("FT.HYBRID: vector data is required")
	}

	switch vector := v.(type) {
	case *VectorFP32:
		return hybridVectorBytes(vector.Val)
	case *VectorFloat16:
		return hybridVectorBytes(vector.Val)
	case *VectorBFloat16:
		return hybridVectorBytes(vector.Val)
	case *VectorFloat64:
		return hybridVectorBytes(vector.Val)
	case *VectorInt8:
		return hybridVectorBytes(vector.Val)
	case *VectorUint8:
		return hybridVectorBytes(vector.Val)
	case *VectorValues, *VectorRef:
		return nil, fmt.Errorf("FT.HYBRID: unsupported vector type %T", v)
	default:
		values := v.Value()
		if len(values) < 2 {
			return nil, fmt.Errorf("FT.HYBRID: vector Value must contain a blob at index 1")
		}
		return values[1], nil
	}
}

func hybridVectorBytes(blob []byte) ([]byte, error) {
	if len(blob) == 0 {
		return nil, fmt.Errorf("FT.HYBRID: vector blob is required")
	}
	return blob, nil
}

// generateVectorParamName returns a parameter name that is not already present
// in params. It is used to pass vector data via the PARAMS mechanism when the

View on GitHub (pinned to 36d97525cd)

Solutions

  1. Pass the vector as []byte blob or []float32/[]float64 values
  2. Convert the value shown in the error to a supported vector representation

When it happens

Trigger: Thrown at search_commands.go:3774 when the library encounters an invalid state.

Common situations: Normalize vectors to a supported Go type at the query builder boundary.


AI-assisted analysis of go-redis/redis@36d97525cd (2026-08-06). Data as JSON: /data/errors/5cf98978c7bd5319.json. Report an issue: GitHub.