paperclipai/paperclip · error

Cannot remove built-in adapter "${adapterType}".

Error message

Cannot remove built-in adapter "${adapterType}".

What it means

Protection guard on DELETE /api/adapters/:type: the target type is a builtin adapter with no external plugin override, and builtins cannot be unregistered from the instance, so the route refuses with 403.

Source

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

  /**
   * DELETE /api/adapters/:type
   *
   * Unregister an external adapter. Built-in adapters cannot be removed.
   */
  router.delete("/adapters/:type", async (req, res) => {
    assertInstanceAdmin(req);
    assertAdapterManagementVisible();

    const adapterType = req.params.type;

    if (!adapterType) {
      res.status(400).json({ error: "Adapter type is required." });
      return;
    }

    // Prevent removal of built-in adapters, unless this built-in type is
    // 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);

View on GitHub (pinned to 5716fe907e)

Solutions

  1. Built-in adapters cannot be removed; disable the adapter instead.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at server/src/routes/adapters.ts:474 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/2a5ad96cabccbf47. Report an issue: GitHub.