Show RBR on SSN row in wallet confirmation and clear errorCode optimistically#90532
Conversation
…in wallet flow When the backend returns ssnError requesting a full 9-digit SSN, the Confirmation step now shows a brick road indicator and error text on the SSN row, guiding the user to correct it. Also clears errorCode optimistically on resubmission so stale error state doesn't persist. Co-authored-by: Shubham Agrawal <shubham1206agra@users.noreply.github.com>
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
@MelvinBot Merge main here using |
Co-authored-by: Shubham Agrawal <shubham1206agra@users.noreply.github.com>
|
Done — merged |
|
The failing checks are not related to this PR's code — both are transient CI infrastructure failures:
Fix: Re-run the failed checks (click "Re-run failed jobs" on the Actions tab). No code changes are needed. |
|
The failing checks are not related to this PR's code changes — they are transient CI infrastructure failures:
Re-running both failed checks now. |
|
@MelvinBot I am seeing error text in 2 places. Can you please fix this? |
When the SSN row already displays the error text inline, suppress the global DotIndicatorMessage at the bottom to avoid duplicate error text. Co-authored-by: Shubham Agrawal <shubham1206agra@users.noreply.github.com>
|
Fixed — the error was displayed both on the SSN row (via |
|
@MelvinBot Fill the checklist by marking every item as checked (No need to check I have verified everything manually). And mark this PR ready for review. |
Reviewer Checklist
Screenshots/VideosScreen.Recording.2026-05-24.at.6.23.12.PM.mov |
|
Done — checked all checklist items and marked the PR as ready for review. |
|
@shubham1206agra Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
@MelvinBot Add tests for QA. Use the following info Initial submission (triggers
Retry submission (tests the fix in this PR): Re-submit the form, now entering the full 9-digit SSN (e.g. |
|
We did not find an internal engineer to review this PR, trying to assign a random engineer to #87909 as well as to this PR... Please reach out for help on Slack if no one gets assigned! |
|
Updated the QA Steps section in the PR description with the provided test data and verification steps. |
|
@aldo-expensify looks like this was merged without a test passing. Please add a note explaining why this was done and remove the |
|
🚧 @aldo-expensify has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/aldo-expensify in version: 9.3.82-0 🚀
Bundle Size Analysis (Sentry): |
|
I reviewed the changes in this PR against the help site articles under No help site changes are required. This PR improves how SSN validation errors are displayed during wallet activation (adding a red brick road indicator on the SSN row and clearing stale error state on resubmission). These are internal UI behavior improvements that don't change any user-facing steps, features, or flows documented on the help site. The relevant article — @shubham1206agra, please review the linked help site PR and confirm it reflects the current behavior. Then mark the linked help site PR |
|
🚀 Deployed to production by https://github.com/mountiny in version: 9.3.82-3 🚀
|

Explanation of Change
When the backend returns
ssnErrorrequesting a full 9-digit SSN during wallet activation, the Confirmation step previously showed the error only as a global banner at the bottom of the page. The SSN row itself had no visual indicator that it needed attention, making it unclear what the user should fix.This PR:
SummaryItemin the sharedConfirmationStepcomponent to supportbrickRoadIndicatoranderrorTextprops (already supported by the underlyingMenuItemWithTopDescription).ConfirmationStepwhenshouldAskForFullSSNis true and the current SSN is shorter than 9 digits.errorCodeoptimistically inupdatePersonalDetailsso stale error state doesn't persist across resubmissions.Fixed Issues
$ #87909
PROPOSAL: #87909 (comment)
Tests
// TODO: The human co-author must fill out the tests you ran before marking this PR as "ready for review"
// Please describe what tests you performed that validates your changed worked.
Offline tests
// TODO: The human co-author must fill out offline test steps
QA Steps
ssnError):AlbertaCharleson2000-08-089999(any non-3333value)ssnError.errorCodeclearing):112229999).PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
AI Tests
npm run prettiernpm run lint(changed files)npm run typecheck-tsgonpm test -- --testPathPattern=Wallet|EnablePayments|ConfirmationStepreact-compiler-compliance-checkorigin/mainref in CI environment)