Fixed · live on trustead.app

Group joins that said they worked, then didn’t

Someone opened a group invite link, tapped Join, and got sent to the group — where the app told them they weren’t in it. Now they’re actually in it.

What was going wrong

A person could only ever be in one of your groups.

Being in a group was recorded as a note attached to the single connection between you and the person joining — and there’s only ever one of those per pair of people. So the first group worked. Every group after that had nowhere to be written down. The Join button reported success anyway, and the group page then correctly said they weren’t a member.

Someone joining for the very first time was fine, which is why it slipped through earlier passes. Anyone you were already connected to — including everyone already in one of your groups — hit it.

What this means for sharing your link

Proved on the real app 25 / 25 passed

A real signed-in browser walked the whole journey on a phone-sized screen — not a simulation of it.

The group invite screen, showing Join P0 Group B with the group creator
1. Opening the link to a second group from the same person — the one that used to break.
The group page after joining, showing the You joined confirmation and the group host listed
2. Tapped Join. “You joined P0 Group B.” The host is listed, and their full name fits. This screen used to say “You’re not in this group.”
The invite dead-end card reading Invite link not found
3. A mistyped invite link now explains itself instead of showing a blank internal page.

Three smaller things fixed alongside

Locked so it can’t come back

Six new automated checks now guard this: a join results in real membership · a second group from the same person works · a first-time join works · a join by someone you’re already connected to works · and Join can never report success for something that didn’t happen — including the exact silent failure that hid this bug.

Each check was verified by deliberately re-breaking the app and confirming the check caught it.

Shipped

Live attrustead.app
Health check{"ok":true,"accessMode":"directional"}
Deployrun 29901358227 · success · f3995d0
Staging proofrun 29901096467 · 25 checks passed, 0 failed

Every test identity used in the proof already existed, no accounts were created, no email was sent, and every row the proof staged was removed afterwards.