block / block/buzz

Desktop client fails to re-establish dropped relay socket; "Reconnect" ineffective, only full relaunch recovers

Open
#3,975 4 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

The macOS Desktop client intermittently shows "can't connect to relay – click to reconnect" and gets stuck: clicking Reconnect repeatedly does nothing, and only quitting and relaunching the app restores the connection.

### Symptoms
- Happens several times over the last few days, each occurrence lasting until a manual relaunch.
- The in-app **Reconnect** control does not recover the session — clicking it repeatedly has no effect.
- Full quit-and-relaunch immediately re-establishes the connection.

### Evidence the relay was up the whole time
- An independent external probe (DNS + TCP:443 + HTTPS GET) against the relay host ran every 60s across the same three-day period and logged **HTTP 200 with zero failures**, including the exact windows the client reported "can't connect".
- Network path was clean during a captured incident: WAN ~15 ms / 0% loss, LAN ~0.7 ms / 0% loss.

So on each occurrence the relay was reachable and healthy; the failure is on the client side (a WebSocket that has dropped and cannot be revived by the Reconnect action).

### Impact
The app goes silent (no messages in or out) until the user notices and manually relaunches. For always-on / agent use this means missed messages during the stuck window.

### Expected
Reconnect should re-establish the WebSocket, or the client should auto-recover a dropped socket without requiring a full restart.

### Environment
- macOS Desktop app
- Single self-hosted Buzz relay
- Intermittent; no reliable trigger identified yet

Contributor guide

Open the contributing guide

Research direction

No source file, test, or entry point is named. Start by tracing the macOS Desktop app's Reconnect control and WebSocket lifecycle, then reproduce the dropped-relay condition and verify that Reconnect or automatic recovery restores messaging without a full relaunch.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
desktop, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.