aaif-goose/goose · error
Auto-updater not initialized. Please restart the application
Error message
Auto-updater not initialized. Please restart the application.
What it means
The 'check-for-updates' IPC handler in the desktop app guards against electron-updater's autoUpdater being uninitialized: currentVersion is null/undefined when the updater never got app metadata (most commonly because the app is not running from a packaged build with app-update.yml, or updater init failed earlier). The handler throws with errorType 'auto_updater_not_initialized' telemetry before calling checkForUpdates.
Source
Thrown at ui/desktop/src/utils/autoUpdater.ts:93
try {
log.info('=== MANUAL UPDATE CHECK INITIATED ===');
log.info(`Manual check for updates requested at ${new Date().toISOString()}`);
log.info(`Current version: ${currentVersion}`);
trackUpdateCheckStarted('manual', currentVersion);
// Reset state for new update check
isUsingGitHubFallback = false;
githubUpdateInfo = {};
lastReportedProgress = 0; // Reset progress tracking
// Ensure auto-updater is properly initialized
if (!autoUpdater.currentVersion) {
log.error('Auto-updater currentVersion is null/undefined');
trackUpdateCheckCompleted('error', currentVersion, {
usingFallback: false,
errorType: 'auto_updater_not_initialized',
});
throw new Error('Auto-updater not initialized. Please restart the application.');
}
log.info(
`About to check for updates with currentVersion: ${JSON.stringify(autoUpdater.currentVersion)}`
);
log.info(`Feed URL: ${autoUpdater.getFeedURL()}`);
const result = await autoUpdater.checkForUpdates();
const duration = Date.now() - checkStartTime;
log.info(`=== MANUAL UPDATE CHECK COMPLETED in ${duration}ms ===`);
log.info('Auto-updater checkForUpdates result:', result);
return {
updateInfo: result?.updateInfo,
error: null,
};
} catch (error) {
const duration = Date.now() - checkStartTime;View on GitHub (pinned to 3810898a74)
Solutions
- Restart the application as the message suggests — most transient init failures clear on a fresh launch
- If it persists, verify you are on a packaged build: dev/unpackaged runs legitimately lack app-update.yml
- Reinstall or re-download the release build so resources/app-update.yml ships correctly
- Maintainers: confirm electron-builder publish config generated the update metadata for this platform
Defensive patterns
Strategy: try-catch
Validate before calling
// Dev-only guard before exposing the check in UI:
import { app } from 'electron';
const canCheckUpdates = app.isPackaged && Boolean(autoUpdater.currentVersion);
if (!canCheckUpdates) hideUpdateButton(); Type guard
const isUpdaterInitialized = (): boolean => autoUpdater.currentVersion != null;
Try / catch
// The IPC handler already catches and falls back to githubUpdater; renderer should
// handle { error } result shape:
const res = await window.api.checkForUpdates();
if (res.error?.includes('not initialized')) {
// prompt app restart; do not spam retries
} Prevention
- Only surface update UI in packaged builds
- Verify app-update.yml is present in resources during release smoke tests
- Treat this as a terminal state: restart, not retry
When it happens
Trigger: Running the app via electron . / dev mode where electron-updater has no packaged resources; app-update.yml missing from resources after a broken packaging step; a build config that never calls the updater's feed setup; state corruption after resume-from-disk on some platforms.
Common situations: Developers clicking 'Check for updates' in an unpackaged dev build; CI-built artifacts missing the publish config; users on very first launch before autoUpdater finished initializing; Linux portable builds without update metadata.
Related errors
- Update file path not found. Please download the update first
- ACP URL is not available
- GOOSE_BINARY is only supported in development builds
- Goose binary not found in any of the possible paths: ${possi
- This window's Goose backend stopped. Close this window and o
AI-assisted analysis of aaif-goose/goose@3810898a74 (2026-08-16).
Data as JSON: /api/errors/625ceb5dac16ec82.
Report an issue: GitHub.