JuliusBrussee/caveman · error
ccr max storage bytes must be positive
Error message
ccr max storage bytes must be positive
What it means
Error "ccr max storage bytes must be positive" thrown in JuliusBrussee/caveman.
Source
Thrown at engine/ccr/store_sqlite.go:149
if err != nil || parsed <= 0 {
return nil, fmt.Errorf("CAVEMAN_CCR_MAX_BYTES must be a positive integer")
}
maxBytes = parsed
}
return OpenWithBudget(path, maxBytes)
}
// OpenWithBudget opens a persistent store with an explicit retained-payload
// budget. New writes fail with ErrBudgetExceeded; existing recovery rows are
// never evicted because an emitted transformed request may still reference any
// handle.
func OpenWithBudget(path string, maxBytes int64) (*Store, error) {
return openWithBudget(path, maxBytes, nil)
}
func openWithBudget(path string, maxBytes int64, afterPrepare func()) (*Store, error) {
if maxBytes <= 0 {
return nil, fmt.Errorf("ccr max storage bytes must be positive")
}
canonicalPath, err := PrepareSQLitePathCanonical(path)
if err != nil {
return nil, err
}
if afterPrepare != nil {
afterPrepare()
}
db, err := sql.Open("sqlite", SQLiteDSN(canonicalPath))
if err != nil {
return nil, fmt.Errorf("open sqlite %q: %w", canonicalPath, err)
}
// One writer connection. With a single connection every statement serializes
// in-process (no self-contention) while busy_timeout absorbs cross-process
// contention; it is also mandatory for an in-memory DSN, where a second
// pooled connection would be a second, empty database.
db.SetMaxOpenConns(1)
db.SetMaxIdleConns(1)View on GitHub (pinned to 27d5a3981a)
Solutions
- Set the ccr max storage bytes to a positive value.
When it happens
Trigger: Thrown at engine/ccr/store_sqlite.go:149 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/4f875957f3223e18.
Report an issue: GitHub.