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

  1. Find the group via Discover Groups.
  2. Tap Join.
  3. If the group requires approval, the request is submitted and the user waits for an owner or admin to approve it.
  4. 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 requireApproval is 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 requireApproval is 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.