paperclipai/paperclip · error

Adapter "${adapterType}" is not an externally installed adap

Error message

Adapter "${adapterType}" is not an externally installed adapter.

What it means

Registry lookup failure on DELETE /api/adapters/:type: an external-record lookup found the adapter in the registry but not in the external-adapter plugin store, meaning it is not an externally installed adapter and cannot be removed through this uninstall route. Returns 404.

Source

Thrown at server/src/routes/adapters.ts:548

    // currently backed by an external adapter plugin override.
    if (BUILTIN_ADAPTER_TYPES.has(adapterType) && !getAdapterPluginByType(adapterType)) {
      res.status(403).json({
        error: `Cannot remove built-in adapter "${adapterType}".`,
      });
      return;
    }

    // Check that the adapter exists in the registry
    const existing = findServerAdapter(adapterType);
    if (!existing) {
      res.status(404).json({
        error: `Adapter "${adapterType}" is not registered.`,
      });
      return;
    }

    // Check that it's an external adapter
    const externalRecord = getAdapterPluginByType(adapterType);
    if (!externalRecord) {
      res.status(404).json({
        error: `Adapter "${adapterType}" is not an externally installed adapter.`,
      });
      return;
    }

    // If installed via npm (has packageName but no localPath), run npm uninstall
    if (externalRecord.packageName && !externalRecord.localPath) {
      try {
        const pluginsDir = getAdapterPluginsDir();
        await execFileAsync("npm", ["uninstall", externalRecord.packageName], {
          cwd: pluginsDir,
          timeout: 60_000,
        });
        logger.info(
          { type: adapterType, packageName: externalRecord.packageName },
          "npm uninstall completed for external adapter",

View on GitHub (pinned to 5716fe907e)

Solutions

  1. Only externally installed adapters can be removed; verify the adapter type and use the correct operation.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/routes/adapters.ts:492 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of paperclipai/paperclip@5716fe907e (2026-08-18). Data as JSON: /api/errors/5207fe557fae0ab2. Report an issue: GitHub.