{"record":{"id":"5a0c3bd2161a0a0a","repo":"paperclipai/paperclip","slug":"plugin-manifest-id-declares-apiversion-manife","errorCode":null,"errorMessage":"Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. Supported versions: ${manifestValidator.getSupportedVersions().join(\", \")}","messagePattern":"Plugin (.+?) declares apiVersion (.+?) which is not supported by this host\\. Supported versions: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"server/src/services/plugin-loader.ts","lineNumber":1290,"sourceCode":"    if (localPath) {\n      await ensureLocalPluginBuilt(resolvedPackagePath, pkgJson);\n    }\n\n    const manifestPath = resolveManifestPath(resolvedPackagePath, pkgJson);\n    if (!manifestPath || !existsSync(manifestPath)) {\n      const manualBuildHint = localPath\n        ? formatLocalPluginManualBuildHint(resolvedPackagePath, pkgJson)\n        : \"\";\n      throw new Error(\n        `Package ${resolvedPackageName} at ${resolvedPackagePath} does not appear to be a Paperclip plugin (no manifest found).${manualBuildHint}`,\n      );\n    }\n\n    const manifest = await loadManifestFromPath(manifestPath);\n\n    // Step 4: Reject incompatible plugin API versions\n    if (!manifestValidator.getSupportedVersions().includes(manifest.apiVersion)) {\n      throw new Error(\n        `Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. ` +\n          `Supported versions: ${manifestValidator.getSupportedVersions().join(\", \")}`,\n      );\n    }\n\n    // Step 5: Validate manifest capabilities are consistent\n    const capResult = capabilityValidator.validateManifestCapabilities(manifest);\n    if (!capResult.allowed) {\n      throw new Error(\n        `Plugin ${manifest.id} manifest has inconsistent capabilities. ` +\n          `Missing required capabilities for declared features: ${capResult.missing.join(\", \")}`,\n      );\n    }\n\n    await assertPageRoutePathsAvailable(manifest);\n\n    // Step 6: Reject plugins that require a newer host than the running server\n    const minimumHostVersion = getMinimumHostVersion(manifest);","sourceCodeStart":1272,"sourceCodeEnd":1308,"githubUrl":"https://github.com/paperclipai/paperclip/blob/120ae5428fa29bee300bcf806491cd4d965fbb7c/server/src/services/plugin-loader.ts#L1272-L1308","documentation":"Error \"Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. Supported versions: ${manifestValidator.getSupportedVersions().join(\", \")}\" thrown in paperclipai/paperclip.","triggerScenarios":"Thrown at server/src/services/plugin-loader.ts:1290 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the plugin manifest apiVersion to one of the supported versions listed in the error, or upgrade the host to support the plugin's apiVersion."],"exampleFix":null,"handlingStrategy":"validation","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-14T05:17:10.506Z"}