JuliusBrussee/caveman · error
cachebench: invalid replay provider usage evidence
Error message
cachebench: invalid replay provider usage evidence
What it means
Error "cachebench: invalid replay provider usage evidence" thrown in JuliusBrussee/caveman.
Source
Thrown at cacheengine/cachebench/replay.go:878
return validBoundedText(value, 256, true)
}
func validateReplayEvidence(record ReplayEvidenceRecord) error {
if record.Schema != ReplayEvidenceSchema || !validBoundedText(record.RequestID, 512, false) || !validSHA256(record.TraceBodySHA256) || !validSHA256(record.WireBodySHA256) || !validBoundedText(record.Provider, 64, false) || !validBoundedText(record.Model, 512, false) || !validBoundedText(record.Epoch, 1024, false) || !validTimingBasis(record.TimingBasis) || !validBoundedText(record.TokenBasis, 128, false) || record.TimeScale <= 0 || record.TimeScale > 1000 || !validBoundedText(record.Reason, 1024, false) || record.ScheduleDriftMilliseconds < 0 || record.ScheduleToleranceMilliseconds <= 0 || record.HTTPStatus < 0 || record.HTTPStatus > 999 || !validProviderRequestID(record.ProviderRequestID) {
return errors.New("cachebench: invalid replay evidence")
}
scheduled, scheduledErr := time.Parse(time.RFC3339Nano, record.ScheduledAt)
started, startErr := time.Parse(time.RFC3339Nano, record.StartedAt)
completed, completedErr := time.Parse(time.RFC3339Nano, record.CompletedAt)
if scheduledErr != nil || startErr != nil || completedErr != nil || completed.Before(started) || record.TimingFaithful != (record.TimingBasis == TimingGrounded && record.TimeScale == 1 && record.ScheduleDriftMilliseconds <= record.ScheduleToleranceMilliseconds) || absDuration(started.Sub(scheduled)).Milliseconds() != record.ScheduleDriftMilliseconds {
return errors.New("cachebench: invalid replay timing evidence")
}
if record.LatencyMilliseconds < 0 {
return errors.New("cachebench: negative replay latency")
}
if record.ProviderUsageSHA256 != "" {
if !validEvidenceSHA256(record.ProviderUsageSHA256) || !validEvidenceSHA256(record.ProviderEvidenceSHA256) || record.ProviderTotalInputTokens <= 0 || record.ProviderOutputTokens < 0 {
return errors.New("cachebench: invalid replay provider usage evidence")
}
} else if record.ProviderTotalInputTokens != 0 || record.ProviderOutputTokens != 0 {
return errors.New("cachebench: replay token counters lack provider usage evidence")
}
if record.Applied != (record.Decision == cacheengine.DecisionApply) || record.Applied && len(record.OptimizerIDs) == 0 {
return errors.New("cachebench: inconsistent replay engine decision")
}
switch record.Attribution {
case cacheengine.AttributionNone, cacheengine.AttributionCausal, cacheengine.AttributionAffinity, cacheengine.AttributionOrganic:
default:
return errors.New("cachebench: invalid replay attribution")
}
if record.Success {
if record.HTTPStatus < 200 || record.HTTPStatus >= 300 || !validEvidenceSHA256(record.ProviderEvidenceSHA256) || !validEvidenceSHA256(record.ProviderUsageSHA256) || record.ProviderTotalInputTokens <= 0 || !validBoundedText(record.QualityVerifier, 256, false) || !validEvidenceSHA256(record.QualityEvidenceSHA256) || record.FailureCode != "" {
return errors.New("cachebench: incomplete successful replay evidence")
}
} else if !validReplayFailureCode(record.FailureCode) {
return errors.New("cachebench: failed replay evidence needs known failure_code")View on GitHub (pinned to 27d5a3981a)
Solutions
- Provide valid provider usage evidence for the replay.
When it happens
Trigger: Thrown at cacheengine/cachebench/replay.go:878 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/9ac731339692f2b0.
Report an issue: GitHub.