{"record":{"id":"a32ecbf9c7c5f7ee","repo":"JuliusBrussee/caveman","slug":"cachebench-negative-replay-latency","errorCode":null,"errorMessage":"cachebench: negative replay latency","messagePattern":"cachebench: negative replay latency","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cacheengine/cachebench/replay.go","lineNumber":874,"sourceCode":"\treturn validBoundedText(verification.Verifier, 256, false) && validUniqueJSONObject(verification.Evidence)\n}\n\nfunc validProviderRequestID(value string) bool {\n\treturn validBoundedText(value, 256, true)\n}\n\nfunc validateReplayEvidence(record ReplayEvidenceRecord) error {\n\tif 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) {\n\t\treturn errors.New(\"cachebench: invalid replay evidence\")\n\t}\n\tscheduled, scheduledErr := time.Parse(time.RFC3339Nano, record.ScheduledAt)\n\tstarted, startErr := time.Parse(time.RFC3339Nano, record.StartedAt)\n\tcompleted, completedErr := time.Parse(time.RFC3339Nano, record.CompletedAt)\n\tif 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 {\n\t\treturn errors.New(\"cachebench: invalid replay timing evidence\")\n\t}\n\tif record.LatencyMilliseconds < 0 {\n\t\treturn errors.New(\"cachebench: negative replay latency\")\n\t}\n\tif record.ProviderUsageSHA256 != \"\" {\n\t\tif !validEvidenceSHA256(record.ProviderUsageSHA256) || !validEvidenceSHA256(record.ProviderEvidenceSHA256) || record.ProviderTotalInputTokens <= 0 || record.ProviderOutputTokens < 0 {\n\t\t\treturn errors.New(\"cachebench: invalid replay provider usage evidence\")\n\t\t}\n\t} else if record.ProviderTotalInputTokens != 0 || record.ProviderOutputTokens != 0 {\n\t\treturn errors.New(\"cachebench: replay token counters lack provider usage evidence\")\n\t}\n\tif record.Applied != (record.Decision == cacheengine.DecisionApply) || record.Applied && len(record.OptimizerIDs) == 0 {\n\t\treturn errors.New(\"cachebench: inconsistent replay engine decision\")\n\t}\n\tswitch record.Attribution {\n\tcase cacheengine.AttributionNone, cacheengine.AttributionCausal, cacheengine.AttributionAffinity, cacheengine.AttributionOrganic:\n\tdefault:\n\t\treturn errors.New(\"cachebench: invalid replay attribution\")\n\t}\n\tif record.Success {\n\t\tif 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 != \"\" {","sourceCodeStart":856,"sourceCodeEnd":892,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/cacheengine/cachebench/replay.go#L856-L892","documentation":"Error \"cachebench: negative replay latency\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at cacheengine/cachebench/replay.go:874 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Fix the clock/timestamps so replay latency is non-negative."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"27d5a3981a347890211bb1bf2439e5c821a63bc9","analyzedAt":"2026-08-15T09:26:11.751Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}