[Bug] macOS auto-update fails signature verification on Intel — both darwin arches share one unversioned Buzz.app.tar.gz in buzz-desktop-latest
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
**Describe the bug**
Auto-update on an Intel Mac fails with `Update failed: The signature verification failed` (observed updating a Block-signed 0.4.22 → 0.4.24). The cause is in the `buzz-desktop-latest` updater release: **both macOS platform entries in `latest.json` point to the same unversioned `Buzz.app.tar.gz`, but carry different signatures** — the two mac release jobs upload under one shared filename and the last upload wins, so at most one architecture's signature can ever verify.
`latest.json` as of `version: 0.4.24`:
| platform | url | signature |
|---|---|---|
| `darwin-aarch64` | `…/buzz-desktop-latest/Buzz.app.tar.gz` | `…d1VIeGs3a3REd2QyQ1hYeTNqSlhhL3lUK0RnPT0K` |
| `darwin-x86_64` | `…/buzz-desktop-latest/Buzz.app.tar.gz` | `…cXdrd3pNOWxsbmlZaEVOUzJUZUV2dFJTSUNRPT0K` |
| `linux-x86_64` | `…/Buzz_0.4.24_amd64.AppImage` | (versioned, per-file) |
| `windows-x86_64` | `…/Buzz_0.4.24_x64-setup_alpha-unsigned.exe` | (versioned, per-file) |
Same URL, two different signatures. The file currently at that URL is the **arm64** build:
```
$ gh release download buzz-desktop-latest -R block/buzz -p Buzz.app.tar.gz
$ tar -xzf Buzz.app.tar.gz && file Buzz.app/Contents/MacOS/buzz-desktop
Buzz.app/Contents/MacOS/buzz-desktop: Mach-O 64-bit executable arm64
```
So every darwin-x86_64 client fails signature verification — and the failure is actually load-bearing: if the x86_64 signature ever *did* verify, Intel users would be handed an arm64 binary.
Note the asset list also shows every Linux/Windows artifact since 0.3.20 accumulating in `buzz-desktop-latest` with versioned names, while macOS alone uses the overwriting unversioned name — which is presumably how the collision was introduced.
**To Reproduce**
1. Install `Buzz_0.4.22_x64.dmg` (Intel) from the v0.4.22 release.
2. Settings → check for updates → install.
3. `Update failed: The signature verification failed`.
**Expected behavior**
Each mac architecture publishes its own updater artifact (e.g. `Buzz__aarch64.app.tar.gz` / `Buzz__x64.app.tar.gz`, matching the versioned naming already used for Linux/Windows), with `latest.json` pointing each `darwin-*` key at its own file.
**Environment**
- Installed app: Buzz 0.4.22, Developer ID `Block, Inc. (EYF346PHUG)`, notarized, Mach-O thin x86_64
- macOS on Intel (x86_64), Darwin 25.5.0
- `buzz-desktop-latest` state as of 2026-07-24
Contributor guide
Research direction
Start by inspecting latest.json in the buzz-desktop-latest updater release and the macOS release jobs that publish Buzz.app.tar.gz. Verify that each darwin architecture receives its own versioned artifact and that the darwin-aarch64 and darwin-x86_64 entries reference matching files and signatures; done means Intel and Apple Silicon updates each verify and install the correct binary.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, release
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100