macOS: stuck launchd KeepAlive job (xyz.block.buzz.restart.*) reopens Buzz every few seconds after Quit
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
## Summary
After a full quit (**⌘Q** / Buzz → Quit), Buzz Desktop on macOS can **reopen itself every ~3 seconds** indefinitely. This is **not** the intentional close-to-tray behavior (red X hides the window; app stays in Dock/menu bar).
Observed on Buzz **0.5.5** (`xyz.block.buzz.app`).
## Root cause (observed on user machine)
A **submitted** launchd job (no on-disk LaunchAgents plist) with **KeepAlive** was looping:
```text
/bin/sh -c sleep 3; /usr/bin/open -a /Applications/Buzz.app
```
| Field | Value |
|-------|--------|
| Label | `xyz.block.buzz.restart.20260801-0624` |
| Properties | **keepalive** |
| Type | Submitted (ephemeral via `launchctl submit`) |
| Runs at discovery | ~33,434 |
| Label date stamp | suggests ~2026-08-01 |
Because the job exits after `open`, KeepAlive immediately respawns it → permanent reopen loop every few seconds.
Parent of the shell was `launchd` (PID 1).
## Workaround (user-side, verified)
```bash
launchctl bootout "gui/$(id -u)/xyz.block.buzz.restart."
# example:
# launchctl bootout "gui/$(id -u)/xyz.block.buzz.restart.20260801-0624"
```
Then quit with ⌘Q and wait 10–15s — app should stay closed.
To check for recurrence:
```bash
launchctl list | grep -i buzz
ps aux | grep -E 'sleep 3;.*Buzz' | grep -v grep
```
## Related (not the same bug)
- Red X on main window still **hides** to tray (intentional). Full quit remains ⌘Q / tray Quit.
- Close-to-tray configurability: #4024
## Product ask
1. **Find who submits** `xyz.block.buzz.restart.*` (updater, recovery path, older binary, external helper). No matching string found in current desktop tree at investigation time.
2. If a one-shot relaunch is intentional, use a **non-KeepAlive** one-shot job (or plain `open` without KeepAlive submit). **KeepAlive + exit-after-open = permanent reopen loop.**
3. Prefer cleaning up any prior restart labels on launch/quit so a stale job cannot outlive the session that created it.
## Environment
- OS: macOS (gui domain, uid 501 on the reporting machine)
- App: Buzz Desktop 0.5.5
- Bundle id: `xyz.block.buzz.app`
- Support report: Buzz Support channel (auto-reopen after quit; notifications off)
Contributor guide
Assessment
This issue has not been assessed yet.