JuliusBrussee/caveman · error

ccr typed object list scan: %w

Error message

ccr typed object list scan: %w

What it means

Wraps scanObject's failure while iterating session-object rows in ListSessionObjects. One row could not be materialized (bad timestamp or dependencies JSON), so the whole listing aborts rather than returning a partial set.

Source

Thrown at engine/ccr/store_sqlite.go:636

}

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.
func (s *Store) FindTaskDecision(decisionID string) (Object, error) {
	obj, err := scanObject(s.db.QueryRow(
		`SELECT `+objectColumns+` FROM typed_objects
		 WHERE object_type = ? AND json_extract(CAST(data AS TEXT), '$.decision_id') = ?
		 ORDER BY created_at DESC, object_id DESC LIMIT 1`,
		ObjectTaskDecision, decisionID,
	))

View on GitHub (pinned to 766dce6b13)

Solutions

  1. Inspect and repair or delete the corrupt row (see scanObject's created_at/dependencies errors)
  2. Re-put the affected objects to rewrite valid rows
  3. Recreate the store if corruption is widespread
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at engine/ccr/store_sqlite.go:636 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/a6866abf005c2b1e. Report an issue: GitHub.