Buzz Desktop: imported nsec never becomes the active identity when connecting to a self-hosted relay
- Dominant language
- Rust
- Stars
- 32.7k
- Forks
- 4.3k
- Avg merge
- 1d 13h
- Merged PRs (30d)
- 253
Description
**Describe the bug**
Importing an existing nsec into Buzz Desktop when connecting to a self-hosted relay never actually becomes the app's active signing identity — it silently keeps using its own locally auto-generated device key instead, causing membership-gated actions to fail even though the intended (imported) key is already registered as a relay member/owner.
**Steps to reproduce**
1. Deploy a self-hosted relay via the official deploy/compose/ bundle; register an owner pubkey via buzz-admin add-member --role owner .
2. Launch Buzz Desktop, connect to the relay (via "I already have a community" → relay URL, or by launching with BUZZ_RELAY_URL set as an env var).
3. When prompted for identity, choose "use an existing key" and paste a valid nsec matching the pre-registered owner.
4. Complete onboarding — no error shown.
5. Check the app's own profile/identity screen — it shows a different npub than the one just imported.
6. Try an action requiring membership (e.g. upload an avatar) — fails with 403 relay_membership_required. The resulting "Not a member yet" screen shows that same different, device-generated npub.
**Expected behavior**
Choosing "use an existing key" and pasting a valid nsec should make that key the app's active signing identity going forward, matching the pubkey registered on the relay.
**Version and platform**
- Buzz version: 0.4.26
- OS: macOS 26.5.2 (Apple Silicon / arm64)
**Logs / additional context**
- Relay-side confirmed correct via buzz-admin list-members — the intended owner pubkey is registered properly, so this isn't a server misconfiguration.
- Reproduced across two different onboarding entry points (community picker's "I already have a community", and launching with BUZZ_RELAY_URL set to skip the picker) — same result both times.
- The npub actually used by the device (shown on the "Not a member yet" screen and in the app's own profile) differs from the imported key's npub every time.
Contributor guide
Assessment
This issue has not been assessed yet.