Ban

Wishlist — not yet planned. The ban feature will be revisited after the product launches and a need is established. The design below captures intent but has not been finalized or committed to a release.

A banned user is restricted to the Ban screen until the ban is lifted or made final by an operator.

How a Ban Is Initiated

Bans are always operator-approved. Automated abuse detection may flag a user and surface them for review, but the ban is only placed once an operator explicitly approves it. There is no system-initiated ban without operator action.

Who Can Do This

Any user with status: banned or status: banned_final.

Ban Phases

A ban moves through two phases:

Phase Status Appeal available Subscription action
Initial ban banned Yes Ban screen shows manual cancellation instructions
Final ban banned_final No Google: cancelled via RevenueCat — access ends at end of billing period. Apple: user must cancel manually.

Initial Ban (status: banned)

When a Ban Takes Effect

A ban does not take effect immediately for a user who is already signed in. Firebase ID tokens are valid for up to 1 hour. During this window the user has full normal app access — the ban is not enforced until the token expires. Any actions taken during this window (e.g. starting a ride, sending a buddy request) are honoured normally and are not rolled back when the ban wall appears. This includes ride START — quota is consumed as usual if the user is free with remaining quota. The ban wall appears on the next app launch after token expiry. This is a technical limitation of Firebase Authentication, not a grace period. The push notification is sent immediately when the ban is placed, so the user may receive the notification before the ban wall is visible.

The Ban Screen

When a banned user signs in, they are routed to the Ban screen instead of the home screen. The screen shows the ban reason — a message written by the operator when the ban was placed — and two options:

  • Appeal — open a chat thread with the operator to contest the ban.
  • Delete Account — follow the standard asset hand-off and deletion flow. See Delete Account.

The Ban screen is a hard wall. No other part of the app is accessible while banned.

Known limitation: A user who signed in with Apple only and has not linked Google cannot sign in on Android — Apple Sign-In is iOS only. If such a user is banned and only has access to an Android device, they cannot reach the Ban screen to appeal or delete their account. They must use an iOS device to access the Ban screen.

Known limitation: Bans are per-account, not per-person. A banned user can create a new account with a different Google or Apple identity and bypass the ban. Merge detection catches phone number reuse (see Account Merge Detection), but offers no coverage if the user registers with an entirely fresh identity. This is an accepted risk — it will be revisited if it becomes a meaningful concern after launch.

Appeal

  1. User taps Appeal on the Ban screen.
  2. A chat thread opens. The user writes their explanation and submits it.
  3. The operator reviews the appeal. They may reply to ask for more details.
  4. The user responds in the same thread.
  5. The operator reaches a decision:
  6. Lifted — ban is removed. User status returns to active. User signs in normally on next launch.
  7. Final — ban is made permanent. Status changes to banned_final. See below.

Rules (Initial Ban)

  • The appeal is a back-and-forth chat thread, not a one-shot form. Each ban event creates a new, separate appeal thread.
  • There is no limit on the number of times a user can appeal, including after a rejection.
  • The ban stays in effect until the operator lifts it or makes it final.
  • While banned, owned groups and rides remain untouched. The group or ride operates normally for other members. The banned user cannot perform any owner or admin actions — except deleting their own assets, which is available exclusively so the user can proceed with account deletion. See Access Policy for the full list of actions that require owner or admin status.
  • If a banned user's subscription lapses during the ban: the standard 7-day asset handoff window begins immediately. Because the banned user cannot perform owner actions, they cannot transfer or delete their groups or rides during the window. After 7 days, all untransferred assets are frozen and unavailable to members and participants. After 30 days, frozen assets are permanently deleted. The ban is not paused or extended by this event.
  • If the user is in an active navigation session when the ban takes effect, the ride is not interrupted — the user completes the navigation session normally. Other participants in the ride are unaffected. The ban screen appears on the next app launch after the ride ends (subject to the 1-hour Firebase token window). For all future rides, the app is blocked at the ban screen — even rides the user has already RSVPed to are inaccessible.
  • All non-ban notifications (buddy requests, ride updates, group alerts, etc.) are suppressed while the user is banned. Suppressed notifications are permanently discarded — they are not queued or delivered when the ban is lifted.
  • The 30-day subscription expiry in-app notice is silently skipped for banned users — they cannot reach the normal app UI where it appears. The App Store and Google Play handle their own billing notifications independently.
  • Pending buddy requests involving the banned user are paused for the duration of the ban. See Manage Riding Buddies for full behavior.
  • An active subscription is not cancelled automatically during an initial ban. The Ban screen shows manual cancellation instructions.
  • Ban history is retained. If the user is ever banned again, the operator can view all previous bans, appeals, and outcomes. Prior appeal threads are also visible to the newly banned user at the start of their new appeal.

Notifications (Initial Ban)

See Notification Reference — Ban Notifications for the full list of ban-related notification events and delivery channels.


Final Ban (status: banned_final)

The Ban Screen

The Ban screen updates to reflect the permanent nature of the ban. The Appeal option is no longer available. Only Delete Account remains.

Subscription Handling

When a ban is made final, 95octane handles the user's active subscription based on their platform:

  • Google Play — 95octane cancels the subscription via RevenueCat. Access continues until the end of the current billing period; no further renewals occur. The user is notified.
  • Apple App Store — 95octane cannot cancel programmatically. The Ban screen shows manual cancellation instructions: Settings → Apple ID → Subscriptions → 95octane → Cancel Subscription

Rules (Final Ban)

  • No further appeals are possible.
  • The user can still delete their account from the Ban screen.
  • Owned groups and rides continue to operate normally for other members. The banned user cannot perform any owner or admin actions. See Access Policy.

Notifications (Final Ban)

See Notification Reference — Ban Notifications. The final-ban notification also includes subscription cancellation instructions relevant to the user's platform.


When a Ban Is Lifted

  • The ban is removed. The user signs in normally.
  • Admin roles held before the ban are not automatically restored. A group or ride owner must re-grant them manually.
  • The appeal thread is archived and visible to operators only. It becomes visible to the user again if they are banned in the future.

Operator Reversal of banned_final

An operator can reverse a banned_final outside the normal appeal flow. When this happens:

  • The user's status returns to active silently.
  • No notification is sent to the user.
  • No admin roles, groups, rides, or invites are restored — the user must rebuild these from scratch.

This is an exceptional action and is expected to occur long after the ban was made final, by which time the user will typically have abandoned the platform.

Failure Cases

  • Appeal submitted while offline — the message is queued and sent when connectivity returns.
  • User deletes account while banned — the standard asset hand-off flow applies. See Delete Account.