{"record":{"id":"e16b18b083f9a2de","repo":"paperclipai/paperclip","slug":"plugin-packagename-string-err","errorCode":null,"errorMessage":"Plugin ${packageName}: ${String(err)}","messagePattern":"Plugin (.+?): (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/src/services/plugin-loader.ts","lineNumber":1447,"sourceCode":"        packageName,\n        version,\n        source,\n        manifest: null,\n      };\n    }\n\n    try {\n      const manifest = await loadManifestFromPath(manifestPath);\n      return {\n        packagePath,\n        packageName,\n        version,\n        source,\n        manifest,\n      };\n    } catch (err) {\n      // Rethrow with context — callers catch and route to the errors array\n      throw new Error(\n        `Plugin ${packageName}: ${String(err)}`,\n      );\n    }\n  }\n\n  // -------------------------------------------------------------------------\n  // Public API\n  // -------------------------------------------------------------------------\n\n  return {\n    // -----------------------------------------------------------------------\n    // discoverAll\n    // -----------------------------------------------------------------------\n\n    async discoverAll(npmSearchDirs?: string[]): Promise<PluginDiscoveryResult> {\n      const allDiscovered: DiscoveredPlugin[] = [];\n      const allErrors: Array<{ packagePath: string; packageName: string; error: string }> = [];\n      const sources: PluginSource[] = [];","sourceCodeStart":1429,"sourceCodeEnd":1465,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/plugin-loader.ts#L1429-L1465","documentation":"Discovery wrapper: loadManifestFromPath threw while discovering a candidate plugin package; the error is rethrown prefixed with the package name so callers can aggregate per-package failures into their errors array. The underlying manifest problem is at fault.","triggerScenarios":"Thrown at server/src/services/plugin-loader.ts:1447 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Investigate the wrapped error for the named plugin (build, install, or load failure), fix the root cause, and retry the operation."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"120ae5428fa29bee300bcf806491cd4d965fbb7c","analyzedAt":"2026-08-18T22:49:45.177Z","contentChangedAt":"2026-08-18T22:49:45.177Z","schemaVersion":2},"datasetVersion":"2026-09-14T00:17:10.932Z"}