paperclipai/paperclip · error
Job "${job.jobKey}" already has a running execution — cannot
Error message
Job "${job.jobKey}" already has a running execution — cannot trigger while in progress What it means
Overlap guard (database, defensive) in triggerJob: a query for pluginJobRuns rows with status running found at least one. Covers multi-instance deployments where another process's in-memory set cannot be seen; the other instance's running execution is at fault.
Source
Thrown at server/src/services/plugin-job-scheduler.ts:473
if (activeJobs.has(jobId)) {
throw new Error(
`Job "${job.jobKey}" is already running — cannot trigger while in progress`,
);
}
// Also check DB for running runs (defensive — covers multi-instance)
const existingRuns = await db
.select()
.from(pluginJobRuns)
.where(
and(
eq(pluginJobRuns.jobId, jobId),
eq(pluginJobRuns.status, "running"),
),
);
if (existingRuns.length > 0) {
throw new Error(
`Job "${job.jobKey}" already has a running execution — cannot trigger while in progress`,
);
}
// Check worker availability
if (!workerManager.isRunning(job.pluginId)) {
throw new Error(
`Worker for plugin "${job.pluginId}" is not running — cannot trigger job`,
);
}
// Create the run and dispatch (non-blocking)
const run = await jobStore.createRun({
jobId,
pluginId: job.pluginId,
trigger,
});
View on GitHub (pinned to 120ae5428f)
Solutions
- A previous execution is still running. Wait for completion or investigate a stuck execution before re-triggering.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/plugin-job-scheduler.ts:473 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@120ae5428f (2026-08-18).
Data as JSON: /api/errors/b2b605a9451025c1.
Report an issue: GitHub.