{"record":{"id":"fce092f698d88bee","repo":"ruvnet/ruflo","slug":"wasm-analysis-failed-falling-back-to-js","errorCode":null,"errorMessage":"WASM analysis failed, falling back to JS","messagePattern":"WASM analysis failed, falling back to JS","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"v3/plugins/gastown-bridge/src/convoy/observer.ts","lineNumber":439,"sourceCode":"        openIssues.push(issueId);\n      }\n    }\n\n    // Use WASM for graph analysis if available\n    let hasCycles = false;\n    let cycleIssues: string[] = [];\n    let readyIssues: ReadyIssueInfo[] = [];\n    let blockedIssues: BlockerInfo[] = [];\n\n    if (this.config.useWasm && this.wasmModule) {\n      try {\n        const wasmResult = this.analyzeWithWasm(beads);\n        hasCycles = wasmResult.hasCycles;\n        cycleIssues = wasmResult.cycleIssues;\n        readyIssues = wasmResult.readyIssues;\n        blockedIssues = wasmResult.blockedIssues;\n      } catch (error) {\n        this.logger.warn('WASM analysis failed, falling back to JS', {\n          error: error instanceof Error ? error.message : String(error),\n        });\n        const jsResult = this.analyzeWithJS(beads, convoy.trackedIssues);\n        hasCycles = jsResult.hasCycles;\n        cycleIssues = jsResult.cycleIssues;\n        readyIssues = jsResult.readyIssues;\n        blockedIssues = jsResult.blockedIssues;\n      }\n    } else {\n      const jsResult = this.analyzeWithJS(beads, convoy.trackedIssues);\n      hasCycles = jsResult.hasCycles;\n      cycleIssues = jsResult.cycleIssues;\n      readyIssues = jsResult.readyIssues;\n      blockedIssues = jsResult.blockedIssues;\n    }\n\n    const progress: ConvoyProgress = {\n      total: convoy.trackedIssues.length,","sourceCodeStart":421,"sourceCodeEnd":457,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/plugins/gastown-bridge/src/convoy/observer.ts#L421-L457","documentation":"Log warning in checkCompletion: the WASM dependency-graph analysis (analyzeWithWasm) threw, so cycle/ready/blocked detection is recomputed with the JavaScript fallback implementation.","triggerScenarios":"Thrown at v3/plugins/gastown-bridge/src/convoy/observer.ts:439 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the WASM analysis error; the JS fallback is used, so results remain correct but slower — reinstall the WASM module to restore speed."],"exampleFix":null,"handlingStrategy":"fallback","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-14T05:17:10.506Z"}