JuliusBrussee/caveman · error
repair forgotten successor: %w
Error message
repair forgotten successor: %w
What it means
The UPDATE repairing the forgotten memory's successor's supersedes pointer failed inside the Forget transaction. The wrapped error is the SQLite failure; rollback keeps lineage intact.
Source
Thrown at mem/store.go:353
if err == sql.ErrNoRows {
return false, nil
}
return false, fmt.Errorf("read forgotten memory: %w", err)
}
if supersedes.Valid {
if _, err := tx.Exec(
`UPDATE memories SET superseded_by = ? WHERE id = ?`,
nullableLineageID(supersededBy), supersedes.String,
); err != nil {
return false, fmt.Errorf("repair forgotten predecessor: %w", err)
}
}
if supersededBy.Valid {
if _, err := tx.Exec(
`UPDATE memories SET supersedes = ? WHERE id = ?`,
nullableLineageID(supersedes), supersededBy.String,
); err != nil {
return false, fmt.Errorf("repair forgotten successor: %w", err)
}
}
if _, err := tx.Exec(`DELETE FROM memories WHERE id = ?`, id); err != nil {
return false, fmt.Errorf("forget: %w", err)
}
if err := tx.Commit(); err != nil {
return false, fmt.Errorf("forget commit: %w", err)
}
return true, nil
}
func nullableLineageID(value sql.NullString) any {
if value.Valid {
return value.String
}
return nil
}
View on GitHub (pinned to 766dce6b13)
Solutions
- Retry the forget
- Check db locks/writability
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at mem/store.go:353 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/a9b62aa98ea10db7.
Report an issue: GitHub.