{"record":{"id":"c2f0297ec94c808f","repo":"ruvnet/ruflo","slug":"plugin-error","errorCode":"PLUGIN_ERROR","errorMessage":"Plugin ${plugin.id} depends on ${depId} which is not loaded","messagePattern":"Plugin (.+?) depends on (.+?) which is not loaded","errorType":"exception","errorClass":"PluginError","httpStatus":null,"severity":"error","filePath":"v3/src/infrastructure/plugins/PluginManager.ts","lineNumber":80,"sourceCode":"    if (this.plugins.has(plugin.id)) {\n      await this.unloadPlugin(plugin.id);\n    }\n\n    // Validate configuration if schema provided\n    if (plugin.configSchema && config) {\n      this.validateConfig(plugin.configSchema, config);\n    }\n\n    // Check version compatibility\n    if (plugin.minCoreVersion || plugin.maxCoreVersion) {\n      this.checkVersionCompatibility(plugin);\n    }\n\n    // Check dependencies\n    if (plugin.dependencies) {\n      for (const depId of plugin.dependencies) {\n        if (!this.plugins.has(depId)) {\n          throw new PluginError(\n            `Plugin ${plugin.id} depends on ${depId} which is not loaded`,\n            { pluginId: plugin.id, dependency: depId }\n          );\n        }\n      }\n    }\n\n    // Initialize plugin\n    await plugin.initialize(config);\n\n    // Register plugin\n    this.plugins.set(plugin.id, plugin);\n\n    // Register extension points\n    const extensionPoints = plugin.getExtensionPoints();\n    for (const ep of extensionPoints) {\n      this.registerExtensionPoint(plugin.id, ep, plugin.priority);\n    }","sourceCodeStart":62,"sourceCodeEnd":98,"githubUrl":"https://github.com/ruvnet/ruflo/blob/fa13ee4ad60ac2090b1480656eb233521790d640/v3/src/infrastructure/plugins/PluginManager.ts#L62-L98","documentation":"PluginManager.loadPlugin() iterated the plugin's declared dependencies and one of them is not present in the loaded-plugins map — it was never registered/loaded, or load order is wrong. Dependency-resolution guard: the plugin cannot start because a prerequisite is missing (an unload/reload cycle can also trigger it).","triggerScenarios":"Thrown at v3/src/infrastructure/plugins/PluginManager.ts:80 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Load the missing dependency plugin before this plugin, or declare the dependency so the manager orders loading correctly."],"exampleFix":null,"handlingStrategy":"validation","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"}