paperclipai/paperclip · error

Plugin package ${plugin.packageName} no longer exposes a Pap

Error message

Plugin package ${plugin.packageName} no longer exposes a Paperclip manifest

What it means

Refresh guard in refreshPluginManifestFromPackage: the installed package on disk no longer resolves to a Paperclip manifest (package replaced, downgraded, or build output removed), so the stored manifest cannot be refreshed; the mutated package contents are at fault.

Source

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

  async function loadManifestFromPackageRoot(
    packageRoot: string,
  ): Promise<PaperclipPluginManifestV1 | null> {
    const pkgJson = await readPackageJson(packageRoot);
    if (!pkgJson) return null;

    const manifestPath = resolveManifestPath(packageRoot, pkgJson);
    if (!manifestPath || !existsSync(manifestPath)) return null;

    return loadManifestFromPath(manifestPath);
  }

  async function refreshPluginManifestFromPackage(
    plugin: PluginRecord,
    packageRoot: string,
  ): Promise<PluginRecord> {
    const manifest = await loadManifestFromPackageRoot(packageRoot);
    if (!manifest) {
      throw new Error(`Plugin package ${plugin.packageName} no longer exposes a Paperclip manifest`);
    }
    if (manifest.id !== plugin.pluginKey) {
      throw new Error(
        `Plugin manifest ID '${manifest.id}' does not match installed plugin '${plugin.pluginKey}'`,
      );
    }

    if (JSON.stringify(manifest) === JSON.stringify(plugin.manifestJson)) {
      return plugin;
    }

    await registry.update(plugin.id, {
      packageName: plugin.packageName,
      version: manifest.version,
      manifest,
    });

    return {

View on GitHub (pinned to 120ae5428f)

Solutions

  1. The installed package no longer exports a Paperclip manifest. Reinstall a version that includes the manifest, or rebuild the plugin package.
Defensive patterns

Strategy: validation

When it happens

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

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18). Data as JSON: /api/errors/86bf381fb708522b. Report an issue: GitHub.