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

  1. 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.