Files
buzz/mobile/lib/shared/hosted/hosted_flow_problem_message.dart
Brad Seiler 96f9eefc1e fix(invites): distinguish owner mismatch and explain claim recovery
Keep owner mismatch terminal while retaining fail-closed storage errors.
Explain restriction and owner recovery in each invite client without
suggesting fresh-link bypasses.

Co-authored-by: Codex <noreply@openai.com>
Signed-off-by: Brad Seiler <seiler@squareup.com>
2026-10-21 12:51:18 -07:00

45 lines
2.8 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import 'hosted_flow.dart';
String hostedFlowProblemMessage(
HostedFlowProblem? problem,
) => switch (problem) {
HostedFlowProblem.communityCreationRejected =>
'This community could not be created. Leave setup to choose another address, or check your hosted community limit in Builderlab.',
HostedFlowProblem.unsupportedEnvironment =>
'This community needs a different or unsupported Builderlab environment. Use an app build configured for this community.',
HostedFlowProblem.accountSetupRequired =>
'This account is not eligible for Buzz yet.',
HostedFlowProblem.invitePolicyRequired =>
'The community policy needs to be accepted again. Try again to review it.',
HostedFlowProblem.inviteExpired =>
'This invite has expired. Ask for a new invite link.',
HostedFlowProblem.inviteExhausted =>
'This invite has no uses left. Ask for a new invite link.',
HostedFlowProblem.inviteInvalid =>
'This invite is not valid. Ask for a new invite link.',
HostedFlowProblem.inviteRestricted =>
'This account or the invite issuer is restricted in this community. Contact a community administrator. If the restriction is temporary, try again after it ends.',
HostedFlowProblem.inviteOwnerMismatch =>
'This account does not match its recorded owner. Use the correct account or owner identity to join this community.',
HostedFlowProblem.denied => 'This account does not have access.',
HostedFlowProblem.differentAccount =>
'Your browser signed in to a different account. Sign in to your original account on the web, then reopen setup. Your saved account and keys have been kept.',
HostedFlowProblem.identityUnreadable =>
'Your saved identity could not be read safely. Leave setup and recover access to this device’s secure storage before continuing.',
HostedFlowProblem.backupUnavailable =>
'Secure backup is not supported on this device yet. Your identity has been kept; joining requires a confirmed backup.',
HostedFlowProblem.requestRejected =>
'The account service could not accept this setup request. Your saved account and identity have been kept.',
HostedFlowProblem.invalidResponse =>
'The account service returned a response this app cannot safely use. Setup has stopped.',
HostedFlowProblem.identityMismatch =>
'This account uses a different identity. Your saved identity has been kept.',
HostedFlowProblem.backupRequired =>
'Your identity needs a confirmed cloud backup before joining. Your saved key has been kept.',
HostedFlowProblem.bindingRequired =>
'Connect your identity from the account setup page first.',
HostedFlowProblem.identityUnavailable =>
'We could not safely recover an identity for this account. Your saved keys have been kept.',
_ => 'We could not finish connecting. You can try again.',
};