{"record":{"id":"590a93798ee5afed","repo":"ruvnet/ruflo","slug":"gnnbridge-not-initialized","errorCode":null,"errorMessage":"GnnBridge not initialized","messagePattern":"GnnBridge not initialized","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"v3/plugins/hyperbolic-reasoning/src/bridges/gnn-bridge.ts","lineNumber":194,"sourceCode":"      this._status = 'error';\n      throw new Error(`Failed to initialize GnnBridge: ${error instanceof Error ? error.message : String(error)}`);\n    }\n  }\n\n  /**\n   * Dispose of resources\n   */\n  async dispose(): Promise<void> {\n    this._module = null;\n    this._status = 'unloaded';\n  }\n\n  /**\n   * Forward pass through GNN\n   */\n  forward(graph: Graph, config: Partial<GnnConfig> = {}): GnnResult {\n    if (!this._module) {\n      throw new Error('GnnBridge not initialized');\n    }\n\n    const mergedConfig = { ...this._config, ...config };\n\n    // Message passing layers\n    let embeddings = graph.nodeFeatures.map(f => new Float32Array(f));\n\n    for (let layer = 0; layer < mergedConfig.numLayers; layer++) {\n      const newEmbeddings = embeddings.map(emb => new Float32Array(mergedConfig.hiddenDim).fill(0));\n\n      // Aggregate neighbor messages\n      for (const [src, tgt] of graph.edges) {\n        const srcEmb = embeddings[src];\n        const weight = graph.edgeWeights?.[graph.edges.indexOf([src, tgt] as [number, number])] ?? 1;\n\n        if (srcEmb) {\n          for (let i = 0; i < Math.min(srcEmb.length, mergedConfig.hiddenDim); i++) {\n            newEmbeddings[tgt]![i] += srcEmb[i]! * weight;","sourceCodeStart":176,"sourceCodeEnd":212,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/plugins/hyperbolic-reasoning/src/bridges/gnn-bridge.ts#L176-L212","documentation":"GnnBridge.forward() found this._module null — the module was never loaded (initialize() not called, failed with error status, or dispose() ran). The forward pass is refused rather than executing on a missing module; the same guard protects the other bridge methods.","triggerScenarios":"Thrown at v3/plugins/hyperbolic-reasoning/src/bridges/gnn-bridge.ts:194 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure the module/bridge/plugin initialize() method has been called and awaited before invoking this operation.","Guard against calls made during startup: await the initialization promise or check the initialized flag and fail fast with a clear setup hint."],"exampleFix":null,"handlingStrategy":"type-guard","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"}