paperclipai/paperclip · error

Plugin manifest is missing

Error message

Plugin manifest is missing

What it means

400 from the plugin webhook ingestion route. Fires when the resolved plugin exists but has no manifestJson (manifest missing), so the handler cannot inspect its declared webhooks/capabilities to validate the delivery.

Source

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

    // Step 1: Resolve the plugin
    const plugin = await resolvePlugin(registry, pluginId);
    if (!plugin) {
      res.status(404).json({ error: "Plugin not found" });
      return;
    }

    // Step 2: Validate the plugin is in 'ready' state
    if (plugin.status !== "ready") {
      res.status(400).json({
        error: `Plugin is not ready (current status: ${plugin.status})`,
      });
      return;
    }

    // Step 3: Validate the plugin has webhooks.receive capability
    const manifest = plugin.manifestJson;
    if (!manifest) {
      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({

View on GitHub (pinned to a7e689b3c3)

Solutions

  1. Reinstall or re-register the plugin so its manifest is written to the plugin instance record.
  2. Verify the plugin package is intact and exposes a valid manifest (paperclip.plugin.json or equivalent).
Defensive patterns

Strategy: validation

When it happens

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

Common situations: Occurs when a webhook (or other plugin route) is invoked for a plugin instance whose stored manifest is missing, usually due to a partial install or corrupted plugin record.


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