JuliusBrussee/caveman · error

ccr typed object currentness rows: %w

Error message

ccr typed object currentness rows: %w

What it means

Wraps the RowsAffected read after the currentness UPDATE in SetObjectCurrentness. The update executed but its effect count could not be determined, so the caller cannot know whether the object was found; the operation fails rather than guessing.

Source

Thrown at engine/ccr/store_sqlite.go:594

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

View on GitHub (pinned to 766dce6b13)

Solutions

  1. Check the wrapped driver error
  2. Retry the idempotent update
  3. Verify the sqlite driver reports RowsAffected correctly for UPDATE
Defensive patterns

Strategy: try-catch

When it happens

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