paperclipai/paperclip · error

Plugin declares apiVersion which is not supported by this…

Error message

Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. Supported versions: ${manifestValidator.getSupportedVersions().join(", ")}

What it means

Error "Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. Supported versions: ${manifestValidator.getSupportedVersions().join(", ")}" thrown in paperclipai/paperclip.

Solutions

  1. 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.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/services/plugin-loader.ts:1290 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@3f1d897a7c (2026-08-18). Data as JSON: /api/errors/5a0c3bd2161a0a0a. Report an issue: GitHub.

Appendix: source

Thrown at server/src/services/plugin-loader.ts:1293

    if (localPath) {
      await ensureLocalPluginBuilt(resolvedPackagePath, pkgJson);
    }

    const manifestPath = resolveManifestPath(resolvedPackagePath, pkgJson);
    if (!manifestPath || !existsSync(manifestPath)) {
      const manualBuildHint = localPath
        ? formatLocalPluginManualBuildHint(resolvedPackagePath, pkgJson)
        : "";
      throw new Error(
        `Package ${resolvedPackageName} at ${resolvedPackagePath} does not appear to be a Paperclip plugin (no manifest found).${manualBuildHint}`,
      );
    }

    const manifest = await loadManifestFromPath(manifestPath);

    // Step 4: Reject incompatible plugin API versions
    if (!manifestValidator.getSupportedVersions().includes(manifest.apiVersion)) {
      throw new Error(
        `Plugin ${manifest.id} declares apiVersion ${manifest.apiVersion} which is not supported by this host. ` +
          `Supported versions: ${manifestValidator.getSupportedVersions().join(", ")}`,
      );
    }

    // Step 5: Validate manifest capabilities are consistent
    const capResult = capabilityValidator.validateManifestCapabilities(manifest);
    if (!capResult.allowed) {
      throw new Error(
        `Plugin ${manifest.id} manifest has inconsistent capabilities. ` +
          `Missing required capabilities for declared features: ${capResult.missing.join(", ")}`,
      );
    }

    await assertPageRoutePathsAvailable(manifest);

    // Step 6: Reject plugins that require a newer host than the running server
    const minimumHostVersion = getMinimumHostVersion(manifest);

View on GitHub (pinned to 3f1d897a7c)