paperclipai/paperclip · error

Plugin not found after status update

Error message

Plugin not found after status update: ${pluginId}

What it means

Post-update consistency guard in the plugin status transition path: after updating the plugin's status, registry.getById no longer finds the row. Defensive check against concurrent delete during enable/disable/load flows; the racing deletion is at fault.

Solutions

  1. The plugin disappeared during the status update (concurrent uninstall). Re-check the plugin list and retry against an existing plugin.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at server/src/services/plugin-loader.ts:2029 when the library encounters an invalid state.

Common situations: See trigger scenarios.


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

Appendix: source

Thrown at server/src/services/plugin-loader.ts:2032

      log.info(
        {
          total: pluginsToLoad.length,
          succeeded,
          failed,
        },
        "plugin-loader: loadAll complete",
      );

      return {
        total: pluginsToLoad.length,
        succeeded,
        failed,
        results: loadResults,
      };
    },

    // -----------------------------------------------------------------------
    // loadSingle
    // -----------------------------------------------------------------------

    /**
     * loadSingle — Loads and activates a single plugin by its ID.
     *
     * This method retrieves the plugin from the registry, ensures it's in a valid
     * state, and then calls activatePlugin to start its worker and register its
     * capabilities (tools, jobs, etc.).
     *
     * @param pluginId - The UUID of the plugin to load.
     * @param options - Optional activation behavior overrides.
     * @returns A promise that resolves with the result of the activation.
     */
    async loadSingle(pluginId: string, options: PluginLoadSingleOptions = {}): Promise<PluginLoadResult> {
      if (!runtimeServices) {
        throw new Error(
          "Cannot loadSingle: no PluginRuntimeServices provided. " +

View on GitHub (pinned to 3f1d897a7c)