block / block/buzz

Channel disappears from sidebar after app restart, even after joining and messaging successfully (self-hosted relay, v0.5.0)

Open
#3,460 3 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Rust
Stars
32.7k
Forks
4.3k
Avg merge
1d 13h
Merged PRs (30d)
253

Description

Hi team — first time filing here, so let me know if I've missed any convention. Wanted to share a clean repro of what looks like a real bug, plus some deeper diagnostic detail in case it's useful. As Claude has been helping troubleshoot, it generated the below report:

Environment

Buzz Desktop v0.5.0, macOS (reproduced on macOS 26.5.2 and 26.6)
Self-hosted relay via Docker Compose (deploy/compose/compose.yml), Postgres 17, single community
Reproduced with a freshly-created agent using the new "Bring Your Own Harness" flow (Hermes Agent), but also reproduces with plain human-only channels — doesn't seem to require an agent at all

Steps to reproduce

Create a new channel from the desktop app (e.g. #test2)
Add an agent to the channel via "Add agent to channel" (or just send a message as the human owner — reproduces either way)
Send a message; confirm it appears and the channel shows correctly in the left sidebar
Fully quit the app (Cmd+Q), then relaunch it

Expected behavior
The channel remains in the sidebar, and membership/join status persists across the restart.

Actual behavior
The channel disappears from the left sidebar entirely. It's still discoverable via Browse Channels, and message history is visible there — but the app shows it as not-joined and prompts to "Join" again, even though the join/message activity from before the restart is intact server-side.

Notes

This reproduces on v0.5.0, which already includes #3182 ("recover full local storage on startup") — so whatever that fix addressed, it doesn't seem to cover this case.
I did a deeper dive on a related-looking issue in an older channel (not the #test2 repro above, a separate one I'd been using) where I could verify the underlying data was correct: the channel_members Postgres row for my identity was present and correct (right community_id, no removed_at/hidden_at), and manually running the relay's own documented get_members() query returned the correct membership. But the relay's published member-list event (kind 39002) never included my pubkey regardless. I don't know if that's the same root cause as the sidebar issue above or a separate one, but flagging in case it's useful — happy to share the full steps for that if it'd help.

Happy to provide logs, a docker exec into the relay's Postgres, or anything else that would help narrow this down.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.