paperclipai/paperclip · error
Job "${job.jobKey}" is already running — cannot trigger whil
Error message
Job "${job.jobKey}" is already running — cannot trigger while in progress What it means
Overlap guard (in-memory) in triggerJob: activeJobs already contains this jobId, meaning this instance is currently executing the job. Prevents concurrent duplicate runs; the in-flight execution is at fault.
Source
Thrown at server/src/services/plugin-job-scheduler.ts:456
async function triggerJob(
jobId: string,
trigger: "manual" | "retry" = "manual",
): Promise<TriggerJobResult> {
const job = await jobStore.getJobById(jobId);
if (!job) {
throw new Error(`Job not found: ${jobId}`);
}
if (job.status !== "active") {
throw new Error(
`Job "${job.jobKey}" is not active (status: ${job.status})`,
);
}
// Overlap prevention
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`,View on GitHub (pinned to 120ae5428f)
Solutions
- Wait for the current execution to finish before triggering again; poll the job's running state or add idempotency on the caller side.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/src/services/plugin-job-scheduler.ts:456 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/cdc2e619c820c4fc.
Report an issue: GitHub.