JuliusBrussee/caveman · error

list memories: %w

Error message

list memories: %w

What it means

Store.all's SELECT loading every current memory (used by Recall) failed before rows could be iterated. The wrapped error is the SQLite query failure; recall aborts rather than running on partial memory.

Source

Thrown at mem/store.go:602

			hi = mid - 1
		}
	}
	for lo > 0 && lo < len(b) && !utf8.RuneStart(b[lo]) {
		lo--
	}
	return b[:lo]
}

// Recover returns the byte-exact original for a recall hit's recovery handle.
func (s *Store) Recover(handle string) ([]byte, error) {
	return s.eng.Retrieve(handle)
}

// all loads every memory.
func (s *Store) all() ([]Memory, error) {
	rows, err := s.db.Query(memorySelect + ` WHERE valid_until IS NULL`)
	if err != nil {
		return nil, fmt.Errorf("list memories: %w", err)
	}
	defer rows.Close()
	var out []Memory
	for rows.Next() {
		var m Memory
		if err := scanMemory(rows, &m); err != nil {
			return nil, err
		}
		out = append(out, m)
	}
	return out, rows.Err()
}

const memorySelect = `SELECT id, text, created_at, valid_from, valid_until, supersedes, superseded_by FROM memories`

type rowScanner interface {
	Scan(dest ...any) error
}

View on GitHub (pinned to 766dce6b13)

Solutions

  1. Retry the recall
  2. Check mem.db health/locks
  3. Inspect the wrapped query error
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at mem/store.go:602 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/a53140e2b7abd5f0. Report an issue: GitHub.