JuliusBrussee/caveman · error
cachebench: observation %d missing provider or quality evide
Error message
cachebench: observation %d missing provider or quality evidence provenance
What it means
Error "cachebench: observation %d missing provider or quality evidence provenance" thrown in JuliusBrussee/caveman.
Source
Thrown at cacheengine/cachebench/observed.go:204
"provider counters prove reads and writes only for supplied records; evaluator binds but does not inspect retained response artifacts",
"quality_passed is supplied by external task verifier; evaluator binds but does not inspect retained grader artifacts",
"report does not prove omitted requests, tail completeness, production prevalence, invoice spend, or verified savings",
}
return report, nil
}
func validateObservationRecords(records []ObservationRecord) error {
seen := make(map[string]bool, len(records))
for index, record := range records {
if record.Schema != ObservationSchema && record.Schema != ObservationSchemaV2 {
return fmt.Errorf("cachebench: observation %d schema %q", index, record.Schema)
}
if !validBoundedText(record.RequestID, 512, false) || seen[record.RequestID] {
return fmt.Errorf("cachebench: observation %d empty or duplicate request_id", index)
}
seen[record.RequestID] = true
if !validBoundedText(record.Provider, 64, false) || !validBoundedText(record.Epoch, 1024, false) || !validBoundedText(record.QualityVerifier, 256, false) || !validBoundedText(record.ProfileID, 256, true) || !validBoundedText(record.EngineReason, 1024, true) || !validEvidenceSHA256(record.ProviderEvidenceSHA256) || !validEvidenceSHA256(record.QualityEvidenceSHA256) {
return fmt.Errorf("cachebench: observation %d missing provider or quality evidence provenance", index)
}
if record.RequestBodySHA256 != "" && !validSHA256(record.RequestBodySHA256) {
return fmt.Errorf("cachebench: observation %d has invalid request body digest", index)
}
optimizerIDs := map[string]bool{}
for _, optimizerID := range record.OptimizerIDs {
if !validBoundedText(optimizerID, 256, false) || optimizerIDs[optimizerID] {
return fmt.Errorf("cachebench: observation %d has invalid optimizer identity", index)
}
optimizerIDs[optimizerID] = true
}
}
return nil
}
func validSHA256(value string) bool {
return len(value) == 64 && strings.Trim(value, "0123456789abcdef") == ""
}View on GitHub (pinned to 27d5a3981a)
Solutions
- Include provider or quality evidence provenance in the observation.
When it happens
Trigger: Thrown at cacheengine/cachebench/observed.go:204 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/ee4c539bb44b80f1.
Report an issue: GitHub.