JuliusBrussee/caveman · error

cachebench: request %q output ceiling does not match provide

Error message

cachebench: request %q output ceiling does not match provider body

What it means

Error "cachebench: request %q output ceiling does not match provider body" thrown in JuliusBrussee/caveman.

Source

Thrown at cacheengine/cachebench/trace.go:252

	for _, request := range trace.Requests {
		bodySHA := sha256.Sum256(request.Native.Body)
		record := TraceRecord{
			Schema: TraceSchema, RequestID: request.ID, At: request.At.Format(time.RFC3339Nano),
			Provider: request.Native.Provider, Model: request.Native.Model, Region: request.Native.Region,
			Endpoint: request.Native.Endpoint, Epoch: request.Native.Epoch, Scope: request.Native.Scope,
			TokenBasis: trace.TokenBasis, TimingBasis: trace.TimingBasis,
			PartitionKey: request.Native.PartitionKey, ExpectedRPM: request.Native.ExpectedRequestsPerMinute,
			ExpectedCalls: request.Native.ExpectedCalls, RuntimeMode: request.Native.RuntimeMode, AuthMode: request.Native.AuthMode,
			PrefixTokens: request.Native.PrefixTokens, DeclaredInputTokens: request.DeclaredInputTokens,
			MaxOutputTokens: request.MaxOutputTokens, Prefix: request.Prefix,
			StableSegmentCount: request.StableSegmentCount, Body: json.RawMessage(request.Native.Body),
			BodySHA256: fmt.Sprintf("%x", bodySHA[:]),
		}
		if _, err := record.NativeRequest(); err != nil {
			return err
		}
		if !requestBudgetMatchesBody(record) {
			return fmt.Errorf("cachebench: request %q output ceiling does not match provider body", record.RequestID)
		}
		if err := encoder.Encode(record); err != nil {
			return err
		}
	}
	return buffered.Flush()
}

// TraceReadLimits bounds JSONL decoding before replay preflight.
type TraceReadLimits struct {
	MaxLineBytes int
	MaxRecords   int
	MaxBodyBytes int
}

// DefaultTraceReadLimits supports public-corpus traces while bounding retained memory.
func DefaultTraceReadLimits() TraceReadLimits {
	return TraceReadLimits{MaxLineBytes: 96 << 20, MaxRecords: 100_000, MaxBodyBytes: 64 << 20}

View on GitHub (pinned to 27d5a3981a)

Solutions

  1. Make the request output ceiling match the provider body.

When it happens

Trigger: Thrown at cacheengine/cachebench/trace.go:252 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/8c5b4642e50c411e. Report an issue: GitHub.