{"record":{"id":"bab54413f979d1d6","repo":"vxcontrol/pentagi","slug":"failed-to-get-flow-vector-store-log-w","errorCode":null,"errorMessage":"failed to get flow vector store log: %w","messagePattern":"failed to get flow vector store log: %w","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"backend/pkg/controller/flow.go","lineNumber":1240,"sourceCode":"\n\tmlw, err := cnts.mlc.GetFlowMsgLog(ctx, flowID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get flow msg log: %w\", err)\n\t}\n\n\tslw, err := cnts.slc.GetFlowSearchLog(ctx, flowID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get flow search log: %w\", err)\n\t}\n\n\ttlw, err := cnts.tlc.GetFlowTermLog(ctx, flowID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get flow term log: %w\", err)\n\t}\n\n\tvslw, err := cnts.vslc.GetFlowVectorStoreLog(ctx, flowID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get flow vector store log: %w\", err)\n\t}\n\n\ttclw, err := cnts.tclc.GetFlowToolCallLog(ctx, flowID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get flow tool call log: %w\", err)\n\t}\n\n\tsw, err := cnts.sc.GetFlowScreenshot(ctx, flowID)\n\tif err != nil {\n\t\treturn nil, fmt.Errorf(\"failed to get flow screenshot: %w\", err)\n\t}\n\n\treturn &flowProviderWorkers{\n\t\tmlw:  mlw,\n\t\talw:  alw,\n\t\tslw:  slw,\n\t\ttlw:  tlw,\n\t\tvslw: vslw,","sourceCodeStart":1222,"sourceCodeEnd":1258,"githubUrl":"https://github.com/vxcontrol/pentagi/blob/ea665308baaff015b226f308438a68d929d0f29b/backend/pkg/controller/flow.go#L1222-L1258","documentation":"Wraps a failure from cnts.vslc.GetFlowVectorStoreLog(ctx, flowID) while building the flow worker bundle; the vector-store log stream could not be fetched. Cause is preserved via %w. Failure aborts the whole flow log retrieval.","triggerScenarios":"Flow log retrieval where the vector-store-log query for flowID fails — e.g., pgvector tables missing/unavailable or the flow has no vector store entries and the store errors.","commonSituations":"pgvector extension not installed or upgraded; DB migration gap for vector-store tables; connection pool exhausted under load.","solutions":["Check the wrapped cause; if it mentions pgvector/extension, verify the extension is installed in the DB.","Run all goose migrations to create vector-store-log tables.","Confirm PostgreSQL connectivity and pool configuration.","Retry if the cause is transient."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":"// ensure pgvector is available\nvar ext string\nerr := db.QueryRow(\"SELECT extname FROM pg_extension WHERE extname='vector'\").Scan(&ext)\nif err != nil { /* pgvector missing — fix DB before querying vector store logs */ }","typeGuard":"func isVectorStoreLogError(err error) bool {\n\treturn err != nil && strings.Contains(err.Error(), \"failed to get flow vector store log\")\n}","tryCatchPattern":"vslw, err := cnts.vslc.GetFlowVectorStoreLog(ctx, flowID)\nif err != nil {\n\tif isTransient(err) { /* retry */ }\n\treturn nil, fmt.Errorf(\"failed to get flow vector store log: %w\", err)\n}","preventionTips":["Install/verify the pgvector extension in the target database.","Run all migrations including vector-store tables.","Health-check the DB before serving flow log endpoints.","Distinguish not-found from transient errors via errors.Is/As."],"tags":["database","pgvector","vector-store","error-wrapping"],"backgroundTag":"data-source-query-failed","analyzedSha":"ea665308baaff015b226f308438a68d929d0f29b","analyzedAt":"2026-09-01T14:16:31.421Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-08T15:18:49.778Z"}