JuliusBrussee/caveman · error
ccr typed object get: %w
Error message
ccr typed object get: %w
What it means
Store.GetObject's SELECT of a typed object by ID failed at the database layer (not ErrNoRows). The wrapped error carries the underlying SQLite failure, such as a locked or closed database.
Source
Thrown at engine/ccr/store_sqlite.go:579
}
obj.CreatedAt = parsed
if err := json.Unmarshal([]byte(deps), &obj.Dependencies); err != nil {
return Object{}, fmt.Errorf("ccr typed object dependencies decode: %w", err)
}
return obj, nil
}
const objectColumns = `object_id, object_type, content_hash, source, created_at,
repository_state, session_id, transform_version, currentness, lifecycle,
dependencies_json, original_byte_length, stored_byte_length, data`
func (s *Store) GetObject(id string) (Object, error) {
obj, err := scanObject(s.db.QueryRow(`SELECT `+objectColumns+` FROM typed_objects WHERE object_id = ?`, id))
if errors.Is(err, sql.ErrNoRows) {
return Object{}, ErrNotFound
}
if err != nil {
return Object{}, fmt.Errorf("ccr typed object get: %w", err)
}
return obj, nil
}
func (s *Store) SetObjectCurrentness(id string, currentness Currentness) error {
if err := validateCurrentness(currentness); err != nil {
return err
}
result, err := s.db.Exec(`UPDATE typed_objects SET currentness = ? WHERE object_id = ?`, currentness, id)
if err != nil {
return fmt.Errorf("ccr typed object currentness: %w", err)
}
n, err := result.RowsAffected()
if err != nil {
return fmt.Errorf("ccr typed object currentness rows: %w", err)
}
if n == 0 {
return ErrNotFoundView on GitHub (pinned to 766dce6b13)
Solutions
- Check the wrapped error for the underlying cause
- Retry after transient locks clear
- Recreate the store if the table is corrupt
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at engine/ccr/store_sqlite.go:579 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@766dce6b13 (2026-08-18).
Data as JSON: /api/errors/254b3790885794d8.
Report an issue: GitHub.