aaif-goose/goose · error
Update Available but no download URL found for platform: ${p
Error message
Update Available but no download URL found for platform: ${platform}, arch: ${arch} What it means
After finding a release, githubUpdater computes the expected asset name for the current platform/arch and looks for it (case-insensitively) among release.assets. If no asset matches, downloadUrl stays unset and this error throws with the platform and arch — the release exists but has nothing installable for this machine (e.g. Goose.zip vs Goose.dmg naming, or the platform simply isn't shipped).
Source
Thrown at ui/desktop/src/utils/githubUpdater.ts:132
} else {
// Linux - for future support
assetName = `${this.bundleName}-linux-${arch}.zip`;
}
log.info(`GitHubUpdater: Looking for asset named: ${assetName}`);
log.info(`GitHubUpdater: Available assets: ${release.assets.map((a) => a.name).join(', ')}`);
const asset = release.assets.find((a) => a.name.toLowerCase() === assetName.toLowerCase()); // keeping comparison to lowercase because Goose vs goose
if (asset) {
downloadUrl = asset.browser_download_url;
log.info(`GitHubUpdater: Found matching asset: ${asset.name} (${asset.size} bytes)`);
log.info(`GitHubUpdater: Download URL: ${downloadUrl}`);
} else {
log.warn(`GitHubUpdater: No matching asset found for ${assetName}`);
}
if (!downloadUrl) {
throw new Error(
`Update Available but no download URL found for platform: ${platform}, arch: ${arch}`
);
}
return {
updateAvailable: true,
latestVersion,
downloadUrl,
releaseUrl: release.html_url,
};
} catch (error) {
log.error('GitHubUpdater: Error checking for updates:', error);
log.error('GitHubUpdater: Error details:', {
message: errorMessage(error, 'Unknown error'),
stack: error instanceof Error ? error.stack : 'No stack',
name: error instanceof Error ? error.name : 'Unknown',
code:
error instanceof Error && 'code' in errorView on GitHub (pinned to 3810898a74)
Solutions
- Check the release page: the logged 'Available assets' line lists what was actually uploaded — confirm your platform/arch is there
- If assets were still uploading, retry after the release finishes publishing
- Maintainers: ensure the release workflow uploads assets for the platform/arch in the error message
- On genuinely unsupported platforms, disable the update check or use manual download
Defensive patterns
Strategy: validation
Validate before calling
// Before offering the update, confirm an asset matches this platform:
const assetName = `Goose-${process.platform}-${process.arch}.zip`; // adapt to naming scheme
if (!release.assets.some(a => a.name.toLowerCase() === assetName.toLowerCase())) {
skipUpdate('no asset for this platform');
} Type guard
const releaseHasAssetFor = (release: GitHubRelease, name: string): boolean => release.assets.some(a => a.name.toLowerCase() === name.toLowerCase());
Try / catch
try {
const info = await checkForUpdatesViaGithub();
} catch (e) {
if (String(e).includes('no download URL found for platform')) {
// platform unsupported in this release: suppress update UI, log platform/arch
} else throw e;
} Prevention
- Publish releases only after all platform CI jobs upload their assets
- Keep asset naming stable across releases (the matcher is exact modulo case)
- Suppress the update flow on known-unsupported platform/arch combos
When it happens
Trigger: Running on linux/arm64 or freebsd where no @aaif/goose-binary asset is published; release published before multi-platform CI finished uploading; asset renamed (Goose.tar.gz vs goose-linux-arm64.tar.gz); case mismatches are handled, extension/format changes are not.
Common situations: Community members on unsupported architectures; checking for updates the moment a release tag is pushed but before all matrix jobs uploaded assets; release pipeline changing artifact names between versions.
Related errors
- GitHub API returned ${response.status}: ${response.statusTex
- Auto-updater not initialized. Please restart the application
- Update file path not found. Please download the update first
- Update file not found. Please download the update first.
- Download failed: ${response.status} ${response.statusText}
AI-assisted analysis of aaif-goose/goose@3810898a74 (2026-08-16).
Data as JSON: /api/errors/1cda3c0c46e993a9.
Report an issue: GitHub.