block / block/buzz

iOS: invite deep link opens blank Home and never claims the invite

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

Description

## Summary

A community invite link opens the Buzz iOS app, but the app lands on an empty **Home** screen and does not process or claim the invite. This makes mobile-first onboarding impossible unless the user first pairs with Buzz Desktop.

The relay is healthy and the invite page itself loads correctly. Server logs show the invite-page GET, but no mobile invite-claim request after the app opens.

## Steps to reproduce

1. Create an invite for a self-hosted Buzz community.
2. Send the HTTPS invite URL to a new iPhone user.
3. Open the link in Safari/Chrome.
4. Tap **Accept invite in Buzz**.
5. Buzz mobile opens.

## Actual behavior

Buzz opens to a blank Home screen showing only the bottom navigation and a floating `+` button. The community is not added and no error is displayed.

On the relay:

- `GET /invite/v2.` returns HTTP 200.
- The invite landing page and assets load.
- No subsequent `POST /api/invites/claim` is observed from the phone.
- The community, TLS/WSS endpoint, Postgres, Redis, MinIO, and pairing relay are healthy.

## Expected behavior

Buzz mobile should consume the `buzz://join?relay=...&code=...` payload, allow the user to create or select a mobile identity, claim the invite, and open the joined community without requiring Buzz Desktop.

## Why this matters

An invite is for onboarding another person. Requiring that person to install and configure Buzz Desktop before mobile works makes the iOS app a companion-only client and blocks normal mobile-first team invitations.

## Environment

- Platform: iOS
- Mobile build: App Store/TestFlight version unknown
- Relay: self-hosted on Railway using the Buzz community template
- Relay URL: `wss://buzz-production-8a4f.up.railway.app`
- Observed: 2026-08-06

## Related issues

- #3211 describes invite-link joins reaching mobile but storing/rewriting the relay scheme incorrectly.
- #4307 describes a successful claim followed by an empty community because no channel membership exists.
- #4604 describes a successful claim followed by no WebSocket connection.
- #2324 explicitly distinguishes pairing your own phone from sending another person an invite.

This reproduction appears earlier in the flow: the deep link opens the app, but the relay sees no claim request at all.

## Suggested acceptance criteria

- Opening an HTTPS invite on iOS launches Buzz and preserves the relay URL and invite code.
- A fresh mobile user can create/import an identity and claim the invite directly.
- The relay receives the claim request and the user lands in at least one visible welcome/default channel.
- Failures show an actionable error instead of an empty Home screen.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the iOS HTTPS invite handoff into the mentioned buzz://join?relay=...&code=... payload, then follow the mobile identity flow to POST /api/invites/claim. Verify with a fresh mobile identity that the relay receives the claim and the app opens a visible welcome/default channel; failures should be actionable rather than a blank Home screen.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, rust
Domain
mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.