You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Banner text: "Update check failed: [updater] check failed: error sending request for url (https://releases.nixm…" — the Tauri updater couldn't reach releases.nixmac.com (DNS/offline/transient), and the app rendered that as a full-width red error banner at the top of the step area. The banner is mounted globally in widget.tsx ~L288, between the Stepper and the step content, so it shows on every step — the screenshot just happened to be on Describe. Nothing in the app was actually broken.
Where
hooks/use-updater.ts ~L81: the check error is console.error'd and stored as banner error state (errorSource: "check").
components/widget/layout/update-banner.tsx ~L62-68 renders Update check failed: {error} in the same red banner used for install failures.
The check runs once per launch from the mount effect (use-updater.ts ~L159-191, guarded by checkedRef); it is skipped when a developer version pin is active, in dev builds (Rust stub at commands/updater.rs ~L99-103 — so this can't be reproduced under devenv up), and with NIXMAC_DISABLE_UPDATER=1. Changing the update channel does not re-check until the next launch. So every release-build user who launches offline sees this.
Acceptance criteria
[Decision] The automatic launch-time update check failing (network error, non-2xx, malformed manifest) does not show the red banner. It is console.warn'd with the underlying error and emits a new update_check_failed telemetry event — add the variant to the TelemetryEvent union in lib/telemetry/types.ts ~L68-70; props = a short reason code, not the raw string (it contains the manifest URL). Remove the now-dead errorSource: "check" branch (use-updater.ts ~L23, update-banner.tsx ~L67). There is no manual check trigger today, so silent-on-failure is safe; if one is added later it must surface the failure inline.
A failed update install keeps the current banner behavior (errorSource: "install").
Follow-up (separate ticket, not in this estimate): a user-visible "Couldn't check for updates" line + manual Check again action. There is no Updates settings tab today (update UI lives only in Developer → Update channel, dev-mode-gated), no manual check trigger, and updater state is per-hook-instance — so this needs a shared store + new UI.
Unit test on the hook (renderHook + vi.mock, as in use-rollback.test.ts): check rejection → no banner error state; install rejection → banner error state. Run with import.meta.env.DEV stubbed false (vi.stubEnv) — the hook's dev-mode guards at ~L66 / ~L110 otherwise swallow both errors and the test proves nothing.
~1–2h for the required ACs (frontend only; use-updater.ts / update-banner.tsx are Cooper's). Verify only in a release build — dev stubs the updater. Not a bug in the updater itself; releases.nixmac.com resolves today.
@farhankhalaf said:
What the screenshot shows (decoded 2026-08-27)
Banner text: "Update check failed: [updater] check failed: error sending request for url (https://releases.nixm…" — the Tauri updater couldn't reach
releases.nixmac.com(DNS/offline/transient), and the app rendered that as a full-width red error banner at the top of the step area. The banner is mounted globally inwidget.tsx~L288, between the Stepper and the step content, so it shows on every step — the screenshot just happened to be on Describe. Nothing in the app was actually broken.Where
hooks/use-updater.ts~L81: the check error isconsole.error'd and stored as banner error state (errorSource: "check").components/widget/layout/update-banner.tsx~L62-68 rendersUpdate check failed: {error}in the same red banner used for install failures.use-updater.ts~L159-191, guarded bycheckedRef); it is skipped when a developer version pin is active, in dev builds (Rust stub atcommands/updater.rs~L99-103 — so this can't be reproduced underdevenv up), and withNIXMAC_DISABLE_UPDATER=1. Changing the update channel does not re-check until the next launch. So every release-build user who launches offline sees this.Acceptance criteria
console.warn'd with the underlying error and emits a newupdate_check_failedtelemetry event — add the variant to theTelemetryEventunion inlib/telemetry/types.ts~L68-70; props = a short reason code, not the raw string (it contains the manifest URL). Remove the now-deaderrorSource: "check"branch (use-updater.ts~L23,update-banner.tsx~L67). There is no manual check trigger today, so silent-on-failure is safe; if one is added later it must surface the failure inline.errorSource: "install").use-rollback.test.ts): check rejection → no banner error state; install rejection → banner error state. Run withimport.meta.env.DEVstubbed false (vi.stubEnv) — the hook's dev-mode guards at ~L66 / ~L110 otherwise swallow both errors and the test proves nothing.~1–2h for the required ACs (frontend only;
use-updater.ts/update-banner.tsxare Cooper's). Verify only in a release build — dev stubs the updater. Not a bug in the updater itself;releases.nixmac.comresolves today.