go-redis/redis · error
FT.HYBRID: ASC and DESC are mutually exclusive
Error message
FT.HYBRID: ASC and DESC are mutually exclusive
What it means
Error "FT.HYBRID: ASC and DESC are mutually exclusive" thrown in go-redis/redis.
Source
Thrown at search_commands.go:3975
if options.GroupBy.ReduceFunc != "" {
args = append(args, "REDUCE", options.GroupBy.ReduceFunc, options.GroupBy.ReduceCount)
args = append(args, options.GroupBy.ReduceParams...)
}
}
// Add APPLY transformations
for _, apply := range options.Apply {
args = append(args, "APPLY", apply.Expression, "AS", apply.AsField)
}
// Add SORTBY
if len(options.SortBy) > 0 {
sortByOptions := []interface{}{}
for _, sortBy := range options.SortBy {
sortByOptions = append(sortByOptions, sortBy.FieldName)
if sortBy.Asc && sortBy.Desc {
cmd := newFTHybridCmd(ctx, options, args...)
cmd.SetErr(fmt.Errorf("FT.HYBRID: ASC and DESC are mutually exclusive"))
return cmd
}
if sortBy.Asc {
sortByOptions = append(sortByOptions, "ASC")
}
if sortBy.Desc {
sortByOptions = append(sortByOptions, "DESC")
}
}
args = append(args, "SORTBY", len(sortByOptions))
args = append(args, sortByOptions...)
}
// Add FILTER (post-filter)
if options.Filter != "" {
args = append(args, "FILTER", options.Filter)
}
View on GitHub (pinned to 36d97525cd)
Solutions
- Set only one of Asc/Desc in the FT.HYBRID sort options
- Derive sort direction from a single enum value
When it happens
Trigger: Thrown at search_commands.go:3975 when the library encounters an invalid state.
Common situations: Model sort direction as one enum field rather than two booleans.
AI-assisted analysis of go-redis/redis@36d97525cd (2026-08-06).
Data as JSON: /data/errors/fe84cbfc35a7401d.json.
Report an issue: GitHub.