paperclipai/paperclip · error
Upgrade failed: new manifest ID '${newManifest.id}' does not
Error message
Upgrade failed: new manifest ID '${newManifest.id}' does not match existing plugin ID '${oldManifest.id}' What it means
Upgrade identity guard: the newly fetched manifest's id differs from the currently installed manifest's id. Upgrades must replace the same plugin — a different id would be a new install, not an upgrade; the wrong package/version being upgraded to is at fault.
Source
Thrown at server/src/services/plugin-loader.ts:1817
log.info(
{ pluginId, packageName, version, localPath },
"plugin-loader: upgrading plugin",
);
// 1. Fetch/Install the new version
const discovered = await fetchAndValidate({
packageName,
localPath,
version,
installDir: localPluginDir,
});
const newManifest = discovered.manifest!;
// 2. Validate it's the same plugin ID
if (newManifest.id !== oldManifest.id) {
throw new Error(
`Upgrade failed: new manifest ID '${newManifest.id}' does not match existing plugin ID '${oldManifest.id}'`,
);
}
// 3. Detect capability escalation — new capabilities not in the old manifest
const oldCaps = new Set(oldManifest.capabilities ?? []);
const newCaps = newManifest.capabilities ?? [];
const escalated = newCaps.filter((c) => !oldCaps.has(c));
if (escalated.length > 0) {
log.warn(
{ pluginId, escalated, oldVersion: oldManifest.version, newVersion: newManifest.version },
"plugin-loader: upgrade introduces new capabilities — requires admin approval",
);
throw new Error(
`Upgrade for "${pluginId}" introduces new capabilities that require approval: ${escalated.join(", ")}. ` +
`The previous version declared [${[...oldCaps].join(", ")}]. ` +
`Please review and approve the capability escalation before upgrading.`,View on GitHub (pinned to 120ae5428f)
Solutions
- The new package is a different plugin (different manifest id). Uninstall the old plugin and install the new one separately, or publish the upgrade under the same id.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/plugin-loader.ts:1817 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/1c9dfc678dc6053b.
Report an issue: GitHub.