redis/go-redis · error

unexpected response type: %T

Error message

unexpected response type: %T

What it means

Error "unexpected response type: %T" thrown in redis/go-redis.

Source

Thrown at search_commands.go:1022

		if mapVal, ok := cmd.rawVal.(map[interface{}]interface{}); ok {
			cmd.val, err = parseFTAggregateMapRESP3(mapVal)
		} else {
			return fmt.Errorf("unexpected RESP3 response type: %T", cmd.rawVal)
		}
		return err
	}

	// RESP2 format or error response - use ReadReply to handle errors properly
	data, err := rd.ReadReply()
	if err != nil {
		return err
	}
	cmd.rawVal = data // Store raw value for debugging
	if dataSlice, ok := data.([]interface{}); ok {
		cmd.val, err = ProcessAggregateResult(dataSlice)
		return err
	}
	return fmt.Errorf("unexpected response type: %T", data)
}

// parseFTAggregateMapRESP3 parses the RESP3 format response from FT.AGGREGATE.
// It takes a map[interface{}]interface{} which is the raw response from ReadReply().
// RESP3 format:
//
//	%5
//	  $10 attributes => *0
//	  $13 total_results => :N
//	  $6 format => $6 STRING
//	  $7 results => *N (array of maps with extra_attributes, values)
//	  $7 warning => *N (array of strings)
func parseFTAggregateMapRESP3(data map[interface{}]interface{}) (*FTAggregateResult, error) {
	result := &FTAggregateResult{
		Rows: make([]AggregateRow, 0),
	}

	for k, v := range data {

View on GitHub (pinned to c5cad058c7)

When it happens

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

Common situations: See trigger scenarios.


AI-assisted analysis of redis/go-redis@c5cad058c7 (2026-09-01). Data as JSON: /api/errors/4cdcf07028e1791b. Report an issue: GitHub.