Join a Group
A user joins a public group from the discovery feed.
Who Can Do This
Any authenticated user who is not already a member of the group.
Steps
- Find the group via Discover Groups.
- Tap Join.
- If the group requires approval, the request is submitted and the user waits for an owner or admin to approve it.
- If no approval is required, the user joins immediately.
Rules
- Any user — including free users — can join a public group.
- A user cannot join a group they are already a member of.
- A user cannot submit a new join request if they already have a pending request for the same group.
- If
requireApprovalis enabled, joining creates a pending request. The user does not have access to the group until an owner or admin approves it. See Approve or Reject a Join Request. - If
requireApprovalis disabled, the user becomes a member immediately. - Joining a private group is not possible through this flow. Use Join via Invite instead.
What Happens Next
- Approval not required: The user is added as a member and immediately has access to the group. The group's owner and admins are notified that a new member has joined.
- Approval required: The user sees a "Request sent" confirmation. Access is granted only after an owner or admin approves the request. The group's owner and admins are notified of the new request. See Approve or Reject a Join Request.
Failure Cases
- Already a member: The join button is hidden or disabled.
- Pending request exists: The user is shown a "Request pending" state and cannot submit another request until the existing one is resolved.
- Private group: Joining via discovery is not possible. The group does not appear in the feed.
- Group is archived: An archived group accepts no new members. The group does not appear in the discovery feed. See Archive a Group.
- Group is frozen (owner lapsed): A group whose owner is no longer a subscriber accepts no new members and does not appear in discovery. It accepts joins again once a subscriber takes ownership or the owner re-subscribes. See Frozen (owner lapsed).
- User is blocked: If the user is on the group's blocklist, the join attempt fails with a generic error. The user is not informed they are blocked.
- Join queue full: If the group already has 100 pending join requests, the join attempt fails with an "OVERBOOKED" error. The user can try again once the queue drops below the cap.
Status: partially-live. Backend API is complete. The groups module has not yet been built in the frontend.