JuliusBrussee/caveman · error
ccr typed object lifecycle rows: %w
Error message
ccr typed object lifecycle rows: %w
What it means
Wraps the RowsAffected read after the lifecycle UPDATE in SetObjectLifecycle. The effect count could not be read, so whether the object exists and was transitioned is unknown and the operation fails closed.
Source
Thrown at engine/ccr/store_sqlite.go:612
return fmt.Errorf("ccr typed object currentness rows: %w", err)
}
if n == 0 {
return ErrNotFound
}
return nil
}
func (s *Store) SetObjectLifecycle(id string, lifecycle Lifecycle) error {
if err := validateLifecycle(lifecycle); err != nil {
return err
}
result, err := s.db.Exec(`UPDATE typed_objects SET lifecycle = ? WHERE object_id = ?`, lifecycle, id)
if err != nil {
return fmt.Errorf("ccr typed object lifecycle: %w", err)
}
n, err := result.RowsAffected()
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)
}View on GitHub (pinned to 766dce6b13)
Solutions
- Check the wrapped driver error
- Retry the idempotent transition
- Confirm the object id exists with GetObject first
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at engine/ccr/store_sqlite.go:612 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/c761caf92e8fefd0.
Report an issue: GitHub.