jlcodes99/cockpit-tools · error

No update available from updater plugin

Error message

No update available from updater plugin

What it means

Sentinel thrown in MainApp's unified update downloader: runUpdaterCheck() completed without error but returned null, meaning the updater plugin reports no installable update for the expected version. The retryWithBackoff wrapper then aborts instead of looping on an update that will never appear.

Source

Thrown at src/App.tsx:1791

      progress: 0,
      requiresInstall: true,
    });
    writeUpdateLog('info', `统一更新任务开始下载: version=${expectedVersion}`);

    let usedAttempts = 0;
    try {
      const downloadedUpdate = await retryWithBackoff(
        async (attempt) => {
          usedAttempts = attempt;
          if (updateCancelRequestedRef.current || updateDownloadTaskIdRef.current !== taskId) {
            throw createUpdaterCanceledError();
          }

          let candidate: UpdaterUpdate | null = null;
          try {
            candidate = await runUpdaterCheck();
            if (!candidate) {
              throw new Error('No update available from updater plugin');
            }
            activeUpdateDownloadRef.current = candidate;

            const candidateVersion = candidate.version;
            const { releaseNotes, releaseNotesZh } = parseUpdaterReleaseNotes(candidate.body);
            await invoke('save_pending_update_notes', {
              version: candidateVersion,
              releaseNotes,
              releaseNotesZh,
            }).catch((error) => {
              console.error('[App] Failed to cache shared update notes:', error);
              writeUpdateLog(
                'warn',
                `缓存统一更新说明失败: version=${candidateVersion}, error=${sanitizeUpdaterErrorMessage(error)}`,
              );
            });

            let downloaded = 0;

View on GitHub (pinned to 1ed8b77992)

Solutions

  1. Confirm the expected version matches what the update feed actually publishes
  2. Re-check later; the feed may not have propagated the release yet
  3. Inspect updater plugin configuration (channel, mirror) if the release is known to exist
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at src/App.tsx:1791 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of jlcodes99/cockpit-tools@1ed8b77992 (2026-09-05). Data as JSON: /api/errors/71869d1dfca5ec06. Report an issue: GitHub.