vxcontrol/pentagi · error
failed to get memorist handler: %w
Error message
failed to get memorist handler: %w
What it means
Wraps a failure from fp.GetMemoristHandler during assistant worker setup (backend/pkg/providers/assistant.go). The memorist (memory/summarization) agent's LLM handler could not be constructed, typically due to an unavailable or misconfigured LLM provider. The assistant worker cannot start without it.
Source
Thrown at backend/pkg/providers/assistant.go:183
return fmt.Errorf("failed to get ask advice handler: %w", err)
}
coder, err := ap.fp.GetCoderHandler(ctx, nil, nil)
if err != nil {
logger.WithError(err).Error("failed to get coder handler")
return fmt.Errorf("failed to get coder handler: %w", err)
}
installer, err := ap.fp.GetInstallerHandler(ctx, nil, nil)
if err != nil {
logger.WithError(err).Error("failed to get installer handler")
return fmt.Errorf("failed to get installer handler: %w", err)
}
memorist, err := ap.fp.GetMemoristHandler(ctx, nil, nil)
if err != nil {
logger.WithError(err).Error("failed to get memorist handler")
return fmt.Errorf("failed to get memorist handler: %w", err)
}
pentester, err := ap.fp.GetPentesterHandler(ctx, nil, nil)
if err != nil {
logger.WithError(err).Error("failed to get pentester handler")
return fmt.Errorf("failed to get pentester handler: %w", err)
}
searcher, err := ap.fp.GetSubtaskSearcherHandler(ctx, nil, nil)
if err != nil {
logger.WithError(err).Error("failed to get searcher handler")
return fmt.Errorf("failed to get searcher handler: %w", err)
}
ctx, observation := obs.Observer.NewObservation(ctx)
executorAgent := observation.Agent(
langfuse.WithAgentName(fmt.Sprintf("assistant %d for flow %d: %s", ap.id, ap.fp.ID(), ap.fp.Title())),
langfuse.WithAgentInput(chain),View on GitHub (pinned to ea665308ba)
Solutions
- Ensure the pgvector extension is installed and migrations ran (`CREATE EXTENSION vector`; check backend startup logs).
- Configure a valid embedding provider key (EMBEDDING_* env or settings UI).
- Verify Postgres connectivity and the wrapped DB error in logs.
- Re-run `docker compose` with the official image that bundles pgvector.
Example fix
// before
memorist, err := ap.fp.GetMemoristHandler(ctx, nil, nil)
if err != nil {
return fmt.Errorf("failed to get memorist handler: %w", err)
}
// after
memorist, err := ap.fp.GetMemoristHandler(ctx, &taskID, &subtaskID)
if err != nil {
logger.WithError(err).Error("memorist init failed — check pgvector & embedding config")
return fmt.Errorf("failed to get memorist handler: %w", err)
} Defensive patterns
Strategy: validation
Validate before calling
var ext string
if err := db.QueryRow(`SELECT extname FROM pg_extension WHERE extname='vector'`).Scan(&ext); err != nil {
return errors.New("pgvector extension not installed — memorist handler cannot start")
} Try / catch
memorist, err := ap.fp.GetMemoristHandler(ctx, nil, nil)
if err != nil {
if isMissingExtension(err) { return fmt.Errorf("install pgvector: %w", err) }
return fmt.Errorf("failed to get memorist handler: %w", err)
} Prevention
- Use the provided Postgres image with pgvector
- Run `CREATE EXTENSION IF NOT EXISTS vector;` in init scripts
- Configure a valid embedding provider before starting flows
- Verify migrations created embeddings tables
When it happens
Trigger: Memorist handler factory fails: pgvector extension missing, embeddings table/schema absent (migrations not run), embedder not configured, or DB connection error.
Common situations: Postgres without the pgvector extension installed; fresh DB where migrations didn't run; no embedding provider key configured so the embedder is nil; DB outage.
Related errors
- failed to load document: %w
- failed to store guide: %w
- failed to create flow vector store log: %w
- failed to get flow vector store log: %w
- knowledge: embedding provider is not configured
AI-assisted analysis of vxcontrol/pentagi@ea665308ba (2026-09-01).
Data as JSON: /api/errors/b234e25064e0233f.
Report an issue: GitHub.