JuliusBrussee/caveman · error
ccr typed object list: %w
Error message
ccr typed object list: %w
What it means
Wraps the typed_objects SELECT failure in Store.ListSessionObjects. The session listing query itself errored (lock, corruption, driver issue) as opposed to returning an empty list, which would be a normal result.
Source
Thrown at engine/ccr/store_sqlite.go:629
if err != nil {
return fmt.Errorf("ccr typed object lifecycle rows: %w", err)
}
if n == 0 {
return ErrNotFound
}
return nil
}
func (s *Store) ListSessionObjects(sessionID string, limit int) ([]Object, error) {
if limit <= 0 {
limit = 100
}
if limit > 10000 {
limit = 10000
}
rows, err := s.db.Query(`SELECT `+objectColumns+` FROM typed_objects WHERE session_id = ? ORDER BY created_at DESC, object_id DESC LIMIT ?`, sessionID, limit)
if err != nil {
return nil, fmt.Errorf("ccr typed object list: %w", err)
}
defer rows.Close()
objects := make([]Object, 0)
for rows.Next() {
obj, err := scanObject(rows)
if err != nil {
return nil, fmt.Errorf("ccr typed object list scan: %w", err)
}
objects = append(objects, obj)
}
if err := rows.Err(); err != nil {
return nil, fmt.Errorf("ccr typed object list rows: %w", err)
}
return objects, nil
}
// FindTaskDecision returns one Decision Ledger object by its stable decision
// ID. Callers still validate the versioned decision schema before rendering it.View on GitHub (pinned to 766dce6b13)
Solutions
- Check the wrapped error for the underlying cause
- Retry the listing after transient contention clears
- Recreate the store if the table is corrupt
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at engine/ccr/store_sqlite.go:629 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/2dcce783abbbf2f1.
Report an issue: GitHub.