paperclipai/paperclip · error · Error
Failed to disable ${failures.length} of ${enabled.length} ti
Error message
Failed to disable ${failures.length} of ${enabled.length} timer heartbeats. First error: ${detail} What it means
Aggregated failure message in the InstanceSettings bulk 'disable timer heartbeats' action: several of the parallel agent runtimeConfig updates rejected (count out of total enabled timers), and the first rejection's message is surfaced. It fires after Promise.allSettled when multiple agent PATCHes failed.
Source
Thrown at ui/src/pages/InstanceSettings.tsx:110
{
runtimeConfig: {
...runtimeConfig,
heartbeat: { ...heartbeat, enabled: false },
},
},
agentRow.companyId,
);
}),
);
const failures = results.filter((result): result is PromiseRejectedResult => result.status === "rejected");
if (failures.length > 0) {
const firstError = failures[0]?.reason;
const detail = firstError instanceof Error ? firstError.message : "Unknown error";
throw new Error(
failures.length === 1
? `Failed to disable 1 timer heartbeat: ${detail}`
: `Failed to disable ${failures.length} of ${enabled.length} timer heartbeats. First error: ${detail}`,
);
}
return enabled;
},
onSuccess: async (updatedRows) => {
setActionError(null);
const companies = new Set(updatedRows.map((row) => row.companyId));
await Promise.all([
queryClient.invalidateQueries({ queryKey: queryKeys.instance.schedulerHeartbeats }),
...Array.from(companies, (companyId) =>
queryClient.invalidateQueries({ queryKey: queryKeys.agents.list(companyId) }),
),
...updatedRows.map((row) =>
queryClient.invalidateQueries({ queryKey: queryKeys.agents.detail(row.id) }),
),
]);
},
onError: (error) => {View on GitHub (pinned to a7e689b3c3)
Solutions
- Read the first error detail, fix the cause, and retry disabling the remaining heartbeats.
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at ui/src/pages/InstanceSettings.tsx:111 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of paperclipai/paperclip@a7e689b3c3 (2026-08-18).
Data as JSON: /api/errors/0b37625c7e200d04.
Report an issue: GitHub.