Channel disappears from sidebar after app restart, even after joining and messaging successfully (self-hosted relay, v0.5.0)
- 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
Assessment
This issue has not been assessed yet.