Skip to content

macOS: Sparkle update popup appears daily despite clicking Install Update (v4.0.8) #9704

@pedromdbl

Description

@pedromdbl

Bug description

On macOS, the Sparkle "Software Update" dialog for Nextcloud 33.0.0 appears every day despite clicking "Install Update" each time. The update is downloaded successfully (.pkg.tbz files accumulate in ~/Library/Caches/com.nextcloud.desktopclient/org.sparkle-project.Sparkle/PersistentDownloads/) but the installation never completes. The macOS install log (/var/log/install.log) confirms no Nextcloud installation occurred after the initial 4.0.8 install.

Steps to reproduce

  1. Install Nextcloud Desktop Client v4.0.8 on macOS
  2. Have "Automatically download and install updates in the future" checked
  3. Wait for the Sparkle update dialog to appear offering v33.0.0
  4. Click "Install Update"
  5. The dialog closes but the update is never installed
  6. The next day, the same dialog reappears

Expected behavior

Clicking "Install Update" should install v33.0.0 and not show the dialog again.

Actual behavior

The update dialog reappears daily. Downloaded .pkg.tbz files accumulate in the Sparkle cache without being installed.

Root cause

In src/gui/updater/sparkleupdater_mac.mm, the backgroundUpdateChecksAllowed delegate method only checks skipUpdateCheck() but ignores the autoUpdateCheck() config preference. This creates an inconsistency with Sparkle 2's internal state management — the delegate reports background checks are allowed without properly consulting the auto-update configuration, which can cause Sparkle's SPUStandardUpdaterController state machine to misbehave during the install flow.

Similarly, backgroundCheckForUpdate() checks !ConfigFile().skipUpdateCheck() instead of ConfigFile().autoUpdateCheck().

This was already fixed on the main/33.0.0 branch in #9406 but was never backported to stable-4.0.

Environment

  • Nextcloud Desktop Client: 4.0.8
  • macOS: Tahoe (Darwin 25.3.0)
  • Sparkle: 2.6.4

Fix

Backport of #9406 to stable-4.0 — see linked PR.

Metadata

Metadata

Assignees

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions