go-redis/redis · error

FT.HYBRID: vector blob is required

Error message

FT.HYBRID: vector blob is required

What it means

Error "FT.HYBRID: vector blob is required" thrown in go-redis/redis.

Source

Thrown at search_commands.go:3786

		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
// caller does not provide a VectorParamName, since inline vector blobs are no
// longer supported by Redis.
func generateVectorParamName(params map[string]interface{}) string {
	for i := 0; ; i++ {
		name := fmt.Sprintf("__vector_param_%d", i)
		if _, ok := params[name]; !ok {
			return name
		}
	}
}

// FTHybridWithArgs - Executes a hybrid search with advanced options

View on GitHub (pinned to 36d97525cd)

Solutions

  1. Supply the vector blob bytes for the KNN/vector clause
  2. Serialize the embedding (e.g. float32 little-endian) into the blob

When it happens

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

Common situations: Assert non-empty vector blobs before sending FT.HYBRID queries.


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