JuliusBrussee/caveman · error
ccr put: %w
Error message
ccr put: %w
What it means
Error "ccr put: %w" thrown in JuliusBrussee/caveman.
Source
Thrown at engine/ccr/store_sqlite.go:358
}
_, err = db.Exec(`ALTER TABLE recoveries ADD COLUMN metadata BLOB`)
return err
}
// OpenMemory opens an ephemeral in-memory store.
func OpenMemory() (*Store, error) { return OpenWithBudget(":memory:", DefaultMaxStorageBytes) }
// Close closes the underlying database.
func (s *Store) Close() error { return s.db.Close() }
// Put stores a recovery and returns its handle. It is idempotent: storing the
// same original twice (the handle is derived from the bytes) overwrites the row
// with identical content and returns the same handle.
func (s *Store) Put(rec Recovery) (string, error) {
handle := Handle(rec.Original)
unchanged, err := s.recoveryUnchanged(handle, rec)
if err != nil {
return "", fmt.Errorf("ccr put: %w", err)
}
if unchanged {
return handle, nil
}
if err := s.checkRecoveryBudget(handle, int64(len(rec.Original)+len(rec.Metadata))); err != nil {
return "", fmt.Errorf("ccr put: %w", err)
}
_, err = s.db.Exec(
`INSERT INTO recoveries (handle, created_at, content_type, compressor, tokens_before, tokens_after, original, metadata)
VALUES (?,?,?,?,?,?,?,?)
ON CONFLICT(handle) DO UPDATE SET
created_at=excluded.created_at,
content_type=CASE WHEN excluded.tokens_before = 0 AND recoveries.tokens_before > 0 THEN recoveries.content_type ELSE excluded.content_type END,
compressor=CASE WHEN excluded.tokens_before = 0 AND recoveries.tokens_before > 0 THEN recoveries.compressor ELSE excluded.compressor END,
tokens_before=CASE WHEN excluded.tokens_before = 0 AND recoveries.tokens_before > 0 THEN recoveries.tokens_before ELSE excluded.tokens_before END,
tokens_after=CASE WHEN excluded.tokens_before = 0 AND recoveries.tokens_before > 0 THEN recoveries.tokens_after ELSE excluded.tokens_after END,
original=excluded.original,
metadata=CASEView on GitHub (pinned to 27d5a3981a)
Solutions
- Fix the underlying ccr put error and retry.
When it happens
Trigger: Thrown at engine/ccr/store_sqlite.go:358 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/2ba8567118f195e8.
Report an issue: GitHub.