paperclipai/paperclip · error · Error

Failed to disable 1 timer heartbeat: ${detail}

Error message

Failed to disable 1 timer heartbeat: ${detail}

What it means

Aggregated failure message in the InstanceSettings bulk 'disable timer heartbeats' action: exactly one of the parallel agent runtimeConfig update promises rejected, and the first rejection's message is inlined. It fires after Promise.allSettled when a single agent's heartbeat-disable PATCH failed.

Source

Thrown at ui/src/pages/InstanceSettings.tsx:109

            agentRow.id,
            {
              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) }),
        ),
      ]);
    },

View on GitHub (pinned to a7e689b3c3)

Solutions

  1. Read the detail error, fix the cause (e.g. permissions or server state), and retry disabling the heartbeat.
Defensive patterns

Strategy: try-catch

When it happens

Trigger: Thrown at ui/src/pages/InstanceSettings.tsx:110 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/7c34eee6bfd6b2a7. Report an issue: GitHub.