vxcontrol/pentagi · error
failed to get flow tool call log: %w
Error message
failed to get flow tool call log: %w
What it means
Wraps a failure from cnts.tclc.GetFlowToolCallLog(ctx, flowID); the tool-call log stream for the flow could not be retrieved during flowProviderWorkers assembly. Root cause preserved via %w. This is the last log fetcher before the screenshot fetch in the sequence.
Source
Thrown at backend/pkg/controller/flow.go:1245
slw, err := cnts.slc.GetFlowSearchLog(ctx, flowID)
if err != nil {
return nil, fmt.Errorf("failed to get flow search log: %w", err)
}
tlw, err := cnts.tlc.GetFlowTermLog(ctx, flowID)
if err != nil {
return nil, fmt.Errorf("failed to get flow term log: %w", err)
}
vslw, err := cnts.vslc.GetFlowVectorStoreLog(ctx, flowID)
if err != nil {
return nil, fmt.Errorf("failed to get flow vector store log: %w", err)
}
tclw, err := cnts.tclc.GetFlowToolCallLog(ctx, flowID)
if err != nil {
return nil, fmt.Errorf("failed to get flow tool call log: %w", err)
}
sw, err := cnts.sc.GetFlowScreenshot(ctx, flowID)
if err != nil {
return nil, fmt.Errorf("failed to get flow screenshot: %w", err)
}
return &flowProviderWorkers{
mlw: mlw,
alw: alw,
slw: slw,
tlw: tlw,
vslw: vslw,
tclw: tclw,
sw: sw,
}, nil
}
View on GitHub (pinned to ea665308ba)
Solutions
- Inspect the wrapped error for the underlying DB cause.
- Verify the flowID exists in the current DB.
- Apply pending migrations so tool-call-log tables exist.
- Retry transient errors; check DB health/pool metrics.
Defensive patterns
Strategy: try-catch
Validate before calling
var exists bool
err := db.QueryRow("SELECT EXISTS(SELECT 1 FROM flows WHERE id=$1)", flowID).Scan(&exists)
if err != nil || !exists { /* abort with 404 */ } Type guard
func isToolCallLogError(err error) bool {
return err != nil && strings.Contains(err.Error(), "failed to get flow tool call log")
} Try / catch
tclw, err := cnts.tclc.GetFlowToolCallLog(ctx, flowID)
if err != nil {
if isTransient(err) { /* retry with backoff */ }
return nil, fmt.Errorf("failed to get flow tool call log: %w", err)
} Prevention
- Validate flowID before fetching logs.
- Keep tool-call-log migrations in sync with releases.
- Monitor DB health and pool metrics.
- Use errors.Is/As to classify wrapped causes.
When it happens
Trigger: Flow log retrieval where the tool-call-log storage query for flowID returns an error (missing flow, DB failure).
Common situations: Tool-call tables absent due to skipped migrations; DB connection issues; querying a flow from a stale/different database.
Related errors
- failed to create flow tool call log: %w
- failed to get flow msg log: %w
- failed to get flow search log: %w
- failed to get flow term log: %w
- failed to get flow vector store log: %w
AI-assisted analysis of vxcontrol/pentagi@ea665308ba (2026-09-01).
Data as JSON: /api/errors/4ab4c585a24539d9.
Report an issue: GitHub.