block / block/buzz

[Bug] macOS auto-update fails signature verification on Intel — both darwin arches share one unversioned Buzz.app.tar.gz in buzz-desktop-latest

Open
#2,690 2 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.