JuliusBrussee/caveman · error
cachebench: Hugging Face rows root must be object
Error message
cachebench: Hugging Face rows root must be object
What it means
Error "cachebench: Hugging Face rows root must be object" thrown in JuliusBrussee/caveman.
Source
Thrown at cacheengine/cachebench/corpus.go:231
row, err := validateCorpusWire(wire, line-1, limits)
if err != nil {
return nil, fmt.Errorf("cachebench: corpus line %d: %w", line, err)
}
if err := appendCorpusRow(&rows, sessions, &retainedBytes, row, limits); err != nil {
return nil, fmt.Errorf("cachebench: corpus line %d: %w", line, err)
}
}
if err := scanner.Err(); err != nil {
return nil, fmt.Errorf("cachebench: read corpus: %w", err)
}
return rows, nil
}
func readHFRows(reader io.Reader, limits CorpusLimits) ([]CorpusRow, error) {
decoder := json.NewDecoder(reader)
first, err := decoder.Token()
if err != nil || first != json.Delim('{') {
return nil, errors.New("cachebench: Hugging Face rows root must be object")
}
rows := make([]CorpusRow, 0)
sessions := map[string]bool{}
var retainedBytes int64
foundRows := false
rootKeys := map[string]bool{}
for decoder.More() {
keyToken, err := decoder.Token()
if err != nil {
return nil, fmt.Errorf("cachebench: read Hugging Face rows key: %w", err)
}
key, ok := keyToken.(string)
if !ok {
return nil, errors.New("cachebench: invalid Hugging Face rows key")
}
if rootKeys[key] {
return nil, fmt.Errorf("cachebench: duplicate Hugging Face field %q", key)
}View on GitHub (pinned to 27d5a3981a)
Solutions
- The Hugging Face rows response must be a JSON object at the root.
When it happens
Trigger: Thrown at cacheengine/cachebench/corpus.go:231 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/18a7b2d7ac02c699.
Report an issue: GitHub.