"Skip for now" — both policy outcomes
The ticket doesn't settle whether phone is mandatory, so both outcomes are designed, with one server-driven switch, AuthMethods.verification.phoneAtSignup: "off" | "optional" | "required" (Δ). Recommended default: optional. Even required never blocks account creation and is never a dead end. It removes the user's own Skip, but in any failure state (including a network error or an unclassified 5xx) the user can continue, and is re-prompted at next sign-in.
Policy matrix
| Policy | Skip visible | Any failure state (send 502, 429, 503, lockout, 409, network/5xx) | After skipping or deferring |
|---|---|---|---|
off (or flag OFF) | n/a. The step isn't rendered | n/a | nextAfterPhone() |
optional (recommended) | Yes: top bar + under the primary action | Skip for now (alongside Retry / Change number) | nextAfterPhone(). Reminder in Settings → Security (the "Unverified" chip in mfa-stepup-mobile 04) |
required | No. Not on the enter-phone or enter-code screens | Continue for now (continue-without-phone) replaces Skip in every failure state, so no state is ever retry-only | nextAfterPhone(). Re-prompted by the flagged sign-in redirect (01) at each later sign-in until verified |
policy=optional · enter phone with Skip
Skip is a quiet link-style button, never styled as primary. It needs no confirmation dialog, because skipping is easy to undo.
- Account (completed)
- Phone (current step)
- Email (not started)
Add your phone number
We'll text you a 6-digit code to confirm this number is yours. It's saved to your account as a verified contact number.
policy=optional · skipped
Brief confirmation, then Continue via nextAfterPhone() (check-inbox shown here; the app if email is off or already confirmed). The progress rail shows Phone as "later", not done.
- Account (completed)
- Phone · later (skipped, you can add it later)
- Email (current step)
Phone skipped
No problem. You can add it anytime from Settings → Security. We'll show a reminder there until it's verified.
policy=required · enter phone, no Skip
No Skip anywhere, including the top bar. An info note explains why. Back and close aren't offered either. The account already exists, so leaving the page just re-prompts at next sign-in.
- Account (completed)
- Phone (current step)
- Email (not started)
Add your phone number
We'll text you a 6-digit code to confirm this number is yours. It's saved to your account as a verified contact number.
policy=required · SMS unavailable → deferred
Required + 503 or lockout: the user continues anyway, and the sign-in redirect (01) re-prompts next time. A required step the platform can't deliver must not trap the user.
- Account (completed)
- Phone · later (skipped, you can add it later)
- Email (current step)
We'll finish this later
We can't send texts right now, so you can continue without a verified phone. We'll ask again the next time you sign in.