block / block/buzz

Buzz Desktop: imported nsec never becomes the active identity when connecting to a self-hosted relay

Open
#2,935 2 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

**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

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.