paperclipai/paperclip · error

Webhook endpoint '${endpointKey}' is not declared by this pl

Error message

Webhook endpoint '${endpointKey}' is not declared by this plugin

What it means

404 from the plugin webhook ingestion route. Fires when the endpointKey in the URL does not match any webhook declaration in the plugin manifest's webhooks list — the endpoint key was never declared by this plugin.

Source

Thrown at server/src/routes/plugins.ts:2736

      res.status(400).json({ error: "Plugin manifest is missing" });
      return;
    }

    const capabilities = manifest.capabilities ?? [];
    if (!capabilities.includes("webhooks.receive")) {
      res.status(400).json({
        error: "Plugin does not have the webhooks.receive capability",
      });
      return;
    }

    // Step 4: Validate the endpointKey exists in the manifest's webhook declarations
    const declaredWebhooks = manifest.webhooks ?? [];
    const webhookDecl = declaredWebhooks.find(
      (w) => w.endpointKey === endpointKey,
    );
    if (!webhookDecl) {
      res.status(404).json({
        error: `Webhook endpoint '${endpointKey}' is not declared by this plugin`,
      });
      return;
    }

    // Step 5: Extract request data
    const requestId = randomUUID();
    const rawHeaders: Record<string, string> = {};
    for (const [key, value] of Object.entries(req.headers)) {
      if (typeof value === "string") {
        rawHeaders[key] = value;
      } else if (Array.isArray(value)) {
        rawHeaders[key] = value.join(", ");
      }
    }

    // Use the raw buffer stashed by the express.json() `verify` callback.
    // This preserves the exact bytes the provider signed, whereas

View on GitHub (pinned to a7e689b3c3)

Solutions

  1. Check the plugin manifest for the exact list of declared webhook endpoint keys and use one of those.
  2. Fix the endpoint key in the webhook URL; it is case-sensitive and must match the manifest declaration.
Defensive patterns

Strategy: validation

When it happens

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

Common situations: Occurs when the webhook URL references an endpoint key that the plugin did not declare in its manifest webhook endpoints.


AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18). Data as JSON: /api/errors/26b505d5f63c08ea. Report an issue: GitHub.