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
- 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)