JuliusBrussee/caveman · error

ccr typed object lifecycle: %w

Error message

ccr typed object lifecycle: %w

What it means

Wraps the UPDATE failure in SetObjectLifecycle. The lifecycle value is validated before the write, so this fires on driver-level failure — lock, full disk, or corruption — while transitioning an object's retention state.

Source

Thrown at engine/ccr/store_sqlite.go:608

		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 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
	}

View on GitHub (pinned to 766dce6b13)

Solutions

  1. Check the wrapped driver error
  2. Retry the lifecycle transition later
  3. Free storage budget or resolve competing writers
Defensive patterns

Strategy: try-catch

When it happens

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