paperclipai/paperclip · error · ToolRuntimeSupervisorError
runtime_restart_backoff
runtime_restart_backoff
Error message
Runtime restart backoff is active
What it means
assertRestartAllowed backoff: metadata restartBackoffUntil (set after a recent crash/exit) is still in the future, so an immediate restart attempt is refused with 429. Wait out the exponential backoff window; the slot will become restartable once the backoff expires.
Source
Thrown at server/src/services/tool-runtime-supervisor.ts:320
{ reasonCode, companyCount, hostCount, maxCompanySlots, maxHostSlots },
);
}
}
function assertRestartAllowed(row: typeof toolRuntimeSlots.$inferSelect, metadata: Record<string, unknown>) {
const at = now();
const suppressedUntil = dateValue(metadata.restartSuppressedUntil);
if (suppressedUntil && suppressedUntil.getTime() > at.getTime()) {
throw new ToolRuntimeSupervisorError(
429,
"Runtime restart storm suppression is active",
"runtime_restart_suppressed",
{ slotId: row.id, suppressedUntil: suppressedUntil.toISOString() },
);
}
const backoffUntil = dateValue(metadata.restartBackoffUntil);
if (backoffUntil && backoffUntil.getTime() > at.getTime()) {
throw new ToolRuntimeSupervisorError(
429,
"Runtime restart backoff is active",
"runtime_restart_backoff",
{ slotId: row.id, backoffUntil: backoffUntil.toISOString() },
);
}
}
function restartMetadata(row: typeof toolRuntimeSlots.$inferSelect, metadata: Record<string, unknown>, reason: string) {
const at = now();
const windowStartedAt = dateValue(metadata.restartWindowStartedAt);
const inSameWindow = windowStartedAt && at.getTime() - windowStartedAt.getTime() <= restartStormWindowMs;
const restartCount = inSameWindow ? numberValue(metadata.restartCount) + 1 : 1;
const suppressed = restartCount > restartStormLimit;
const backoffMs = restartBackoffMs === 0
? 0
: Math.min(restartBackoffMaxMs, restartBackoffMs * (2 ** Math.max(0, restartCount - 1)));
return {View on GitHub (pinned to 120ae5428f)
Solutions
- Restart backoff is active for this runtime. Wait for the backoff window to expire before retrying; investigate the repeated failure cause.
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at server/src/services/tool-runtime-supervisor.ts:320 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/7e6a63502ad053ea.
Report an issue: GitHub.