JuliusBrussee/caveman · error

cachebench: observation %d schema %q

Error message

cachebench: observation %d schema %q

What it means

Error "cachebench: observation %d schema %q" thrown in JuliusBrussee/caveman.

Source

Thrown at cacheengine/cachebench/observed.go:197

	}
	report.Overall = aggregateProviders(report.Providers, target)
	if report.Overall.GatePassed {
		report.Status = "pass"
	}
	report.EvidenceLimitations = []string{
		"population completeness is not proven unless EvaluateObservedAgainstTrace is used",
		"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
		}

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Use the expected observation schema version.

When it happens

Trigger: Thrown at cacheengine/cachebench/observed.go:197 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/2e98f3fc865e40a7. Report an issue: GitHub.