JuliusBrussee/caveman · error
cacheengine: duplicate normalized driver provider %q
Error message
cacheengine: duplicate normalized driver provider %q
What it means
Error "cacheengine: duplicate normalized driver provider %q" thrown in JuliusBrussee/caveman.
Source
Thrown at cacheengine/engine.go:91
if maxRequestBytes == 0 {
maxRequestBytes = defaultInputByteLimit
}
maxStablePrefixBytes := config.MaxStablePrefixBytes
if maxStablePrefixBytes == 0 {
maxStablePrefixBytes = defaultInputByteLimit
}
resolver := config.ResolveProfile
if resolver == nil {
resolver = defaultProfile
}
drivers := make(map[string]Driver, len(config.Drivers))
for rawProvider, driver := range config.Drivers {
provider := strings.ToLower(strings.TrimSpace(rawProvider))
if provider == "" || driver == nil {
return nil, errors.New("cacheengine: driver needs non-empty provider and implementation")
}
if _, exists := drivers[provider]; exists {
return nil, fmt.Errorf("cacheengine: duplicate normalized driver provider %q", provider)
}
drivers[provider] = driver
}
return &Engine{
guard: cacheguard.New(), prefixSafety: newPrefixSafetyCache(8192),
maxKeyShards: maxShards, maxRequestBytes: maxRequestBytes, maxStablePrefixBytes: maxStablePrefixBytes,
resolveProfile: resolver, drivers: drivers,
}, nil
}
// Plan selects profitable stable-prefix cache boundaries without editing wire bytes.
func (e *Engine) Plan(request PlanRequest) (Plan, error) {
if e == nil || e.guard == nil || e.prefixSafety == nil {
return Plan{}, errors.New("cacheengine: nil engine")
}
if e.configErr != nil {
return Plan{}, e.configErr
}View on GitHub (pinned to 27d5a3981a)
Solutions
- Remove the duplicate normalized driver provider.
When it happens
Trigger: Thrown at cacheengine/engine.go:91 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/62e0df1beb97c88f.
Report an issue: GitHub.