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

  1. 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.