Skip to content

Desktop join flow fails with bare "Load Failed" — zero requests reach self-hosted relay (invite + member paths) #3164

Description

@MikeGibbsOnyx

Desktop join flow fails with bare "Load Failed" — zero requests reach the relay (self-hosted, invite + member paths both broken)

Environment

  • Client: Buzz desktop v0.4.26, macOS aarch64 (.dmg from releases), Mac Studio, macOS 26.5
  • Relay: self-hosted ghcr.io/block/buzz:main (arm64), deploy/compose bundle, Docker on Ubuntu ARM64 (DGX Spark), Tailscale-only binding, healthy (liveness/readiness green, NIP-42 observed, CLI round-trips clean)
  • Relay config: BUZZ_REQUIRE_AUTH_TOKEN=true, BUZZ_REQUIRE_RELAY_MEMBERSHIP=true, BUZZ_ALLOW_NIP_OA_AUTH=true, auto-migrate clean

Repro

  1. Fresh install → onboarding → "Join a community" (or "Reconnect as member")
  2. Enter ws://<relay>:3000 → Next → "Load Failed", stuck, no progression
  3. Owner mints a valid invite via POST /api/invites (200, 7-day TTL) → paste full invite URL into invite field → redeem → same "Load Failed"
  4. Full local-state wipe (~/Library/Application Support/xyz.block.buzz.app etc.) + complete uninstall/reinstall → same result on a virgin identity

Evidence the relay is not the problem

  • Relay logs show zero HTTP/WS requests arriving from the desktop during join/claim attempts (across all attempts after the first)
  • First-ever attempt did reach the relay: POST /events from the user's pubkey accepted with status 200 (kind:30003 published) — then every subsequent attempt dies client-side
  • Same relay verified end-to-end via source-built buzz-cli + buzz-acp from another machine: NIP-42 auth, channel create, send/read/thread/search, member add, ACP bot mention/reply — all green
  • GET /api/join-policy returns 200 {} from the same client machine via curl (no policy configured)
  • WS handshake from client machine returns 101 Switching Protocols + AUTH challenge as expected

Secondary issues found along the way

  1. Error surfacing: "Load Failed" is the entire diagnostic. No error detail in UI, no user-accessible log file, --enable-logging shows only unrelated buzz-mesh heartbeat noise, and the production build ignores --remote-debugging-port. Users cannot self-diagnose; maintainers cannot get useful reports. Please surface the underlying error (and write a real log file).
  2. POST /api/invites response redacts the code: the JSON response returns "code":"eyJjIj...GDCw" with the middle elided (source at api/invites.rs:282 appears to return the full code, so the redaction may be middleware/tenant layer) — a CLI/API minter can't read back the invite they just created.
  3. Managed-agent noise: default seeded agent ("Bumble") ships with empty relay_url, causing infinite buzz-mesh: status report failed: relay unreachable heartbeat spam on every boot.

Suspicions (unverified)

  • After the first failed attempt, onboarding caches a broken community/identity record and the join flow fails before any network call — even after "reconnect as member" flows, until state is wiped. But a fully wiped reinstall ALSO fails, so there is likely a second, deterministic failure in the v0.4.26 join/claim path against a closed self-hosted relay (NIP-42-required, membership-required, no join-policy configured).

Happy to run a debug build or capture any specific diagnostics — just tell me what flag/log you need; the app currently gives users no way to provide them.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions