go-redis/redis · error

invalid synonyms format

Error message

invalid synonyms format

What it means

Returned in FTSynDumpCmd.readReply (search_commands.go:3609-3612): each term's synonyms value must be a []interface{} (an array of synonym-group IDs). A non-array value here trips this error.

Source

Thrown at search_commands.go:3611

		return err
	}

	// RESP2 format
	termSynonymPairs, err := rd.ReadSlice()
	if err != nil {
		return err
	}

	var results []FTSynDumpResult
	for i := 0; i < len(termSynonymPairs); i += 2 {
		term, ok := termSynonymPairs[i].(string)
		if !ok {
			return fmt.Errorf("invalid term format")
		}

		synonyms, ok := termSynonymPairs[i+1].([]interface{})
		if !ok {
			return fmt.Errorf("invalid synonyms format")
		}

		synonymList := make([]string, len(synonyms))
		for j, syn := range synonyms {
			synonym, ok := syn.(string)
			if !ok {
				return fmt.Errorf("invalid synonym format")
			}
			synonymList[j] = synonym
		}

		results = append(results, FTSynDumpResult{
			Term:     term,
			Synonyms: synonymList,
		})
	}

	cmd.val = results

View on GitHub (pinned to 36d97525cd)

Solutions

  1. Inspect cmd.RawVal() to see the synonyms value and its type.
  2. Reproduce via redis-cli FT.SYNDUMP <idx>.
  3. Upgrade Redis Stack and go-redis to current versions.
  4. File a go-redis issue with the raw payload if persistent.
Defensive patterns

Strategy: try-catch

Try / catch

res, err := client.FTSynDump(ctx, idx).Result()
if err != nil && strings.Contains(err.Error(), "invalid synonyms format") {
    raw, _ := cmd.RawVal()
    log.Printf("ft.syndump synonyms not array; raw=%#v", raw)
}

Prevention

When it happens

Trigger: FTSynDump reply where the synonyms slot is a scalar (string, nil) instead of an array — typically version drift or a malformed reply.

Common situations: Older/newer module variant returning a single ID instead of a list, or a proxy mangling the reply.

Related errors


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