vxcontrol/pentagi · error
failed to create flow vector store log: %w
Error message
failed to create flow vector store log: %w
What it means
Fifth step of newFlowProviderWorkers: the vector store log worker is created via cnts.vslc.NewFlowVectorStoreLog(ctx, flowID, pub). Failure wrapped with this message aborts flow startup — the flow's memory/vector-store events (pgvector) cannot be journaled.
Source
Thrown at backend/pkg/controller/flow.go:1189
mlw, err := cnts.mlc.NewFlowMsgLog(ctx, flowID, pub)
if err != nil {
return nil, fmt.Errorf("failed to create flow msg log: %w", err)
}
slw, err := cnts.slc.NewFlowSearchLog(ctx, flowID, pub)
if err != nil {
return nil, fmt.Errorf("failed to create flow search log: %w", err)
}
tlw, err := cnts.tlc.NewFlowTermLog(ctx, flowID, pub)
if err != nil {
return nil, fmt.Errorf("failed to create flow term log: %w", err)
}
vslw, err := cnts.vslc.NewFlowVectorStoreLog(ctx, flowID, pub)
if err != nil {
return nil, fmt.Errorf("failed to create flow vector store log: %w", err)
}
tclw, err := cnts.tclc.NewFlowToolCallLog(ctx, flowID, pub)
if err != nil {
return nil, fmt.Errorf("failed to create flow tool call log: %w", err)
}
sw, err := cnts.sc.NewFlowScreenshot(ctx, flowID, pub)
if err != nil {
return nil, fmt.Errorf("failed to create flow screenshot: %w", err)
}
return &flowProviderWorkers{
mlw: mlw,
alw: alw,
slw: slw,
tlw: tlw,
vslw: vslw,View on GitHub (pinned to ea665308ba)
Solutions
- Verify the pgvector extension is installed: CREATE EXTENSION IF NOT EXISTS vector; and the table exists
- Check the wrapped error and Postgres logs for the exact SQL failure
- Re-run goose migrations after any DB restore
- Confirm DB connectivity and retry flow creation
Example fix
// before: flow start fails because pgvector is missing
workers, err := newFlowProviderWorkers(ctx, flowID, cnts, pub)
// after: preflight the extension before creating workers
var ext bool
if err := db.QueryRowContext(ctx,
"SELECT EXISTS(SELECT 1 FROM pg_extension WHERE extname='vector')").Scan(&ext); err != nil {
return nil, err
}
if !ext {
return nil, errors.New("pgvector extension not installed")
}
workers, err = newFlowProviderWorkers(ctx, flowID, cnts, pub) Defensive patterns
Strategy: validation
Validate before calling
var ext string
if err := db.QueryRowContext(ctx, `SELECT extname FROM pg_extension WHERE extname='vector'`).Scan(&ext); err != nil {
return errors.New("pgvector extension not installed — required for vector store logs")
} Type guard
func pgvectorReady(ctx context.Context, db DB) bool {
var ext string
return db.QueryRowContext(ctx, `SELECT extname FROM pg_extension WHERE extname='vector'`).Scan(&ext) == nil
} Try / catch
vslw, err := cnts.vslc.NewFlowVectorStoreLog(ctx, flowID, pub)
if err != nil {
if strings.Contains(err.Error(), "vector") || strings.Contains(err.Error(), "extension") {
return nil, fmt.Errorf("pgvector missing/misconfigured: %w", err)
}
return nil, fmt.Errorf("failed to create flow vector store log: %w", err)
} Prevention
- Install pgvector in the Postgres image/instance before first boot (docker-compose does this — custom DBs must too)
- Re-run CREATE EXTENSION after restoring dumps into a fresh cluster
- Pin a Postgres image version known to work with the required pgvector version
- Check the extension at deployment health-check time, not flow start
When it happens
Trigger: NewFlowVectorStoreLog fails during flow startup: DB error on vector-store log initialization, invalid flowID, or the pgvector extension/table is unavailable.
Common situations: Postgres running without the pgvector extension installed or wrong version; vector-store table missing after restoring a DB dump without extensions; general DB outage mid-startup; concurrent flow deletion.
Related errors
- failed to create flow agent log: %w
- failed to create flow msg log: %w
- failed to create flow search log: %w
- failed to create flow term log: %w
- failed to create flow tool call log: %w
AI-assisted analysis of vxcontrol/pentagi@ea665308ba (2026-09-01).
Data as JSON: /api/errors/b4f1c878d2469dae.
Report an issue: GitHub.