{"record":{"id":"8c5b4642e50c411e","repo":"JuliusBrussee/caveman","slug":"cachebench-request-q-output-ceiling-does-not-mat","errorCode":null,"errorMessage":"cachebench: request %q output ceiling does not match provider body","messagePattern":"cachebench: request %q output ceiling does not match provider body","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"cacheengine/cachebench/trace.go","lineNumber":252,"sourceCode":"\tfor _, request := range trace.Requests {\n\t\tbodySHA := sha256.Sum256(request.Native.Body)\n\t\trecord := TraceRecord{\n\t\t\tSchema: TraceSchema, RequestID: request.ID, At: request.At.Format(time.RFC3339Nano),\n\t\t\tProvider: request.Native.Provider, Model: request.Native.Model, Region: request.Native.Region,\n\t\t\tEndpoint: request.Native.Endpoint, Epoch: request.Native.Epoch, Scope: request.Native.Scope,\n\t\t\tTokenBasis: trace.TokenBasis, TimingBasis: trace.TimingBasis,\n\t\t\tPartitionKey: request.Native.PartitionKey, ExpectedRPM: request.Native.ExpectedRequestsPerMinute,\n\t\t\tExpectedCalls: request.Native.ExpectedCalls, RuntimeMode: request.Native.RuntimeMode, AuthMode: request.Native.AuthMode,\n\t\t\tPrefixTokens: request.Native.PrefixTokens, DeclaredInputTokens: request.DeclaredInputTokens,\n\t\t\tMaxOutputTokens: request.MaxOutputTokens, Prefix: request.Prefix,\n\t\t\tStableSegmentCount: request.StableSegmentCount, Body: json.RawMessage(request.Native.Body),\n\t\t\tBodySHA256: fmt.Sprintf(\"%x\", bodySHA[:]),\n\t\t}\n\t\tif _, err := record.NativeRequest(); err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif !requestBudgetMatchesBody(record) {\n\t\t\treturn fmt.Errorf(\"cachebench: request %q output ceiling does not match provider body\", record.RequestID)\n\t\t}\n\t\tif err := encoder.Encode(record); err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn buffered.Flush()\n}\n\n// TraceReadLimits bounds JSONL decoding before replay preflight.\ntype TraceReadLimits struct {\n\tMaxLineBytes int\n\tMaxRecords   int\n\tMaxBodyBytes int\n}\n\n// DefaultTraceReadLimits supports public-corpus traces while bounding retained memory.\nfunc DefaultTraceReadLimits() TraceReadLimits {\n\treturn TraceReadLimits{MaxLineBytes: 96 << 20, MaxRecords: 100_000, MaxBodyBytes: 64 << 20}","sourceCodeStart":234,"sourceCodeEnd":270,"githubUrl":"https://github.com/JuliusBrussee/caveman/blob/27d5a3981a347890211bb1bf2439e5c821a63bc9/cacheengine/cachebench/trace.go#L234-L270","documentation":"Error \"cachebench: request %q output ceiling does not match provider body\" thrown in JuliusBrussee/caveman.","triggerScenarios":"Thrown at cacheengine/cachebench/trace.go:252 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Make the request output ceiling match the provider body."],"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-15T17:31:12.345Z"}