paperclipai/paperclip · error · Error
Worker already registered for plugin "${pluginId}" (status:
Error message
Worker already registered for plugin "${pluginId}" (status: ${existing.status}) What it means
The worker registry already has a handle registered for this pluginId when registering a new one. Indicates a spawn/registration race; the existing worker's status is reported so the duplicate can be reconciled.
Source
Thrown at server/src/services/plugin-worker-manager.ts:3016
// Unexpected exit — crash recovery
totalCrashes++;
const now = Date.now();
// Reset consecutive crash counter if enough time passed
if (lastCrashAt !== null && now - lastCrashAt > CRASH_WINDOW_MS) {
consecutiveCrashes = 0;
}
consecutiveCrashes++;
lastCrashAt = now;
log.error(
{ code, signal, consecutiveCrashes, totalCrashes },
"worker process crashed",
);
const willRestart =
autoRestart && consecutiveCrashes <= MAX_CONSECUTIVE_CRASHES;
setStatus("crashed");
emitter.emit("crash", { pluginId, code, signal, willRestart });
if (willRestart) {
scheduleRestart();
} else {
log.error(
{ consecutiveCrashes, maxCrashes: MAX_CONSECUTIVE_CRASHES },
"max consecutive crashes reached, not restarting",
);
}
}
function rejectAllPending(error: Error): void {
for (const [id, pending] of pendingRequests) {
clearTimeout(pending.timer);
pending.resolve(
createErrorResponse(View on GitHub (pinned to 01ad858492)
Solutions
- A worker is already registered for this plugin. Stop or deregister the existing worker before registering a new one.
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at server/src/services/plugin-worker-manager.ts:2198 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@01ad858492 (2026-08-18).
Data as JSON: /api/errors/f66319f81ed6b1fb.
Report an issue: GitHub.