{"record":{"id":"931d1cb9f9b5b740","repo":"ruvnet/ruflo","slug":"failed-to-calculate-progress","errorCode":null,"errorMessage":"Failed to calculate progress","messagePattern":"Failed to calculate progress","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/plugins/gastown-bridge/src/convoy/tracker.ts","lineNumber":692,"sourceCode":"        if (bead.blockedBy && bead.blockedBy.length > 0) {\n          const hasOpenBlocker = bead.blockedBy.some(blockerId => {\n            const blocker = beadMap.get(blockerId);\n            return blocker && blocker.status !== 'closed';\n          });\n          if (hasOpenBlocker) {\n            blocked++;\n          }\n        }\n      }\n\n      return {\n        total: issueIds.length,\n        closed,\n        inProgress,\n        blocked,\n      };\n    } catch (error) {\n      this.logger.warn('Failed to calculate progress', {\n        issueIds,\n        error: error instanceof Error ? error.message : String(error),\n      });\n\n      return {\n        total: issueIds.length,\n        closed: 0,\n        inProgress: 0,\n        blocked: 0,\n      };\n    }\n  }\n\n  /**\n   * Verify issues exist\n   */\n  private async verifyIssues(issueIds: string[]): Promise<string[]> {\n    const verified: string[] = [];","sourceCodeStart":674,"sourceCodeEnd":710,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/plugins/gastown-bridge/src/convoy/tracker.ts#L674-L710","documentation":"Log warning in calculateProgress: computing closed/in-progress/blocked counts over the convoy's issue beads threw (e.g. missing bead data); a zeroed/empty progress summary is returned instead of propagating the error.","triggerScenarios":"Thrown at v3/plugins/gastown-bridge/src/convoy/tracker.ts:692 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the tracker state and the logged cause; progress calculation needs valid bead status data."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fa13ee4ad60ac2090b1480656eb233521790d640","analyzedAt":"2026-08-18T21:34:22.708Z","contentChangedAt":"2026-08-18T21:34:22.708Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}