Skip to content

Account upgrade: phone number not pre-filled on second device, field disabled, user stuck #590

@islandbitcoin

Description

@islandbitcoin

Bug Report

PR: #400 (feat/business-account)

Summary

The Personal Information screen in the account upgrade flow shows a blank, disabled phone number field with a placeholder (123-456-7890) and the Next button permanently greyed out. The user is completely stuck with no way to proceed.

This affects two distinct use cases:

Use Case 1 — New user (first install, phone login)

  1. User downloads the app for the first time
  2. Presses Login, enters phone number, receives OTP, creates account (Level 0 trial)
  3. Taps Upgrade Account → selects Pro or Merchant
  4. Personal Information screen: name empty, email empty, phone = placeholder 123-456-7890, disabled
  5. Next button permanently disabled → user stuck

The phone number was used for OTP login but is never written to the AsyncStorage key that the upgrade flow reads from.

Use Case 2 — Cross-device upgrade (second device)

  1. User completes Personal (L0→L1) upgrade on Device A (e.g. iOS)
  2. Logs in with same account on Device B (e.g. Android)
  3. Taps Upgrade Account → selects Pro or Merchant
  4. Personal Information: name pre-filled ✅, email pre-filled ✅, phone = placeholder 123-456-7890, disabled
  5. Next button permanently disabled → user stuck

Name and email are fetched from the server via latestAccountUpgradeRequest. Phone number is sourced from AsyncStorage (device-local only) and is absent on a fresh device or fresh install.

Root Cause

Phone number pre-population is sourced exclusively from AsyncStorage (device-local). The phone field is also hard-disabled, preventing manual entry as a fallback. The user's phone number is already known server-side (used for OTP auth) but is never fetched for pre-population.

Expected Behavior

Phone number should be fetched from the user's account on the server (already known from login), OR the field should be editable when blank so the user can re-enter it.

Severity

High — affects all new users attempting Pro/Merchant upgrade on first install, and all cross-device upgrade flows

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions