{"record":{"id":"6b705910e0d6eaed","repo":"JuliusBrussee/caveman","slug":"cachebench-request-q-exceeded-schedule-drift-tol","errorCode":null,"errorMessage":"cachebench: request %q exceeded schedule drift tolerance","messagePattern":"cachebench: request %q exceeded schedule drift tolerance","errorType":"exception","errorClass":"ReplayRunError","httpStatus":null,"severity":"error","filePath":"cacheengine/cachebench/replay.go","lineNumber":578,"sourceCode":"\t\ttraceAt, _ := time.Parse(time.RFC3339Nano, record.At)\n\t\toffset, _ := scaledReplayGap(traceAt.Sub(anchorTrace), runner.TimeScale)\n\t\tscheduled := anchorReal.Add(offset)\n\t\tif delay := scheduled.Sub(now().UTC()); delay > 0 {\n\t\t\tif err := sleep(ctx, delay); err != nil {\n\t\t\t\treturn fmt.Errorf(\"cachebench: replay schedule interrupted: %w\", err)\n\t\t\t}\n\t\t}\n\t\tstarted := now().UTC()\n\t\tevidence := replayEvidenceBase(record, item.optimized, runner.TimeScale, scheduled, started, runner.Limits.MaxScheduleDrift)\n\t\tif runner.Limits.RequireGroundedTiming && evidence.ScheduleDriftMilliseconds > evidence.ScheduleToleranceMilliseconds {\n\t\t\tevidence.FailureCode = \"schedule_drift\"\n\t\t\tevidence.CompletedAt = now().UTC().Format(time.RFC3339Nano)\n\t\t\tif err := emitValidatedReplayResult(emit, ReplayResult{Evidence: evidence}); err != nil {\n\t\t\t\treturn err\n\t\t\t}\n\t\t\treturn &ReplayRunError{\n\t\t\t\tRequestID: record.RequestID, FailureCode: evidence.FailureCode,\n\t\t\t\tErr: fmt.Errorf(\"cachebench: request %q exceeded schedule drift tolerance\", record.RequestID),\n\t\t\t}\n\t\t}\n\t\tresult, runErr := runner.executePrepared(ctx, item, evidence, started, now)\n\t\tif err := emitValidatedReplayResult(emit, result); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif runErr != nil {\n\t\t\treturn runErr\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (runner ReplayRunner) runConcurrent(ctx context.Context, prepared []preparedReplay, anchorTrace, anchorReal time.Time, now func() time.Time, sleep func(context.Context, time.Duration) error, emit func(ReplayResult) error) error {\n\tscheduleCtx, stopScheduling := context.WithCancel(ctx)\n\tdefer stopScheduling()\n\tsemaphore := make(chan struct{}, runner.Limits.MaxConcurrency)\n\tvar workers sync.WaitGroup","sourceCodeStart":560,"sourceCodeEnd":596,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/766dce6b1394ebb56a3090748d5a0240a5aefb36/cacheengine/cachebench/replay.go#L560-L596","documentation":"A request was actually sent later than its scheduled time by more than the tolerated drift (ScheduleDriftMilliseconds exceeded the allowance under RequireGroundedTiming), so the replay's timing fidelity claim would be false.","triggerScenarios":"Thrown at cacheengine/cachebench/replay.go:578 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Raise MaxScheduleDrift tolerance","Reduce concurrency or load so sends meet their schedule"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"766dce6b1394ebb56a3090748d5a0240a5aefb36","analyzedAt":"2026-08-18T03:14:35.516Z","contentChangedAt":"2026-08-18T03:14:35.516Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}