From 9147a7a881e91d8c1bf34791d08a3580d8e04f24 Mon Sep 17 00:00:00 2001 From: Andre Hugo Date: Thu, 2 Jul 2026 12:09:22 -0700 Subject: [PATCH] fix(updater): show friendly message when platform assets not yet uploaded When a release is published (latest.json exists) but platform-specific binaries are still building, check() succeeds but downloadAndInstall() fails with 'None of the fallback platforms... were found in the response'. Catch this transient error in both checkForUpdate() and downloadAndInstall() and show a user-friendly message instead of the raw error. --- src/lib/stores/updater.svelte.ts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/lib/stores/updater.svelte.ts b/src/lib/stores/updater.svelte.ts index 1a3d4fa..45bcc43 100644 --- a/src/lib/stores/updater.svelte.ts +++ b/src/lib/stores/updater.svelte.ts @@ -36,7 +36,15 @@ class UpdaterStore { } } catch (e) { this.state = 'error'; - this.errorMessage = e instanceof Error ? e.message : String(e); + const raw = e instanceof Error ? e.message : String(e); + // Common transient error: the release was published (latest.json + // exists) but not all platform assets are uploaded yet. The user + // checked for updates during the ~5-15 minute release build window. + if (raw.includes('fallback platforms') || raw.includes('were found in the response')) { + this.errorMessage = `Update v${this.availableVersion ?? ''} is still being built. Please try again in a few minutes.`; + } else { + this.errorMessage = raw; + } } } @@ -75,7 +83,12 @@ class UpdaterStore { this.state = 'installed'; } catch (e) { this.state = 'error'; - this.errorMessage = e instanceof Error ? e.message : String(e); + const raw = e instanceof Error ? e.message : String(e); + if (raw.includes('fallback platforms') || raw.includes('were found in the response')) { + this.errorMessage = `Update assets are still uploading. Please try again in a few minutes.`; + } else { + this.errorMessage = raw; + } } }