paperclipai/paperclip · error
Plugin manifest ID '${manifest.id}' does not match installed
Error message
Plugin manifest ID '${manifest.id}' does not match installed plugin '${plugin.pluginKey}' What it means
Identity guard in refreshPluginManifestFromPackage: the freshly loaded manifest's id differs from the installed plugin's pluginKey. A package swap changed the plugin's identity, which would orphan registrations and namespaces; the mismatched package is at fault.
Source
Thrown at server/src/services/plugin-loader.ts:1377
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 {
...plugin,
version: manifest.version,
apiVersion: manifest.apiVersion,View on GitHub (pinned to 120ae5428f)
Solutions
- Align the manifest id with the installed plugin key; a mismatched package was published/installed. Reinstall the correct package.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/plugin-loader.ts:1377 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/e915b8b2481a5934.
Report an issue: GitHub.