You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2026-10-23] [$175] Onboarding - Error message mentions "undefined" when work email is Expensifail account #104005
Version Number: 9.5.9-0 Reproducible in staging?: Yes Reproducible in production?: N/A - new feature, doesn't exist in prod If this was caught during regression testing, add the test name, ID and link from BrowserStack:#103652 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Mac 26.5 / Chrome App Component: Other
Action Performed:
1 .Go to staging.new.expensify.com
2. Log in with a new Gmail account.
3. On work email step, click Skip.
4. Select Join my company workspace.
5. Enter any Expensifail account > Add work email.
6. Click app back button.
Expected Result:
Error message will show "applause.expensifail.com is a domain controlled login for an existing Expensify account.".
Actual Result:
Error message shows "undefined is a domain controlled login for an existing Expensify account.".
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
Identify the pull request that introduced this issue and revert it.
Root cause: That PR added a back button to the work email screen for the join-workspace intent. The button only navigates back to the Purpose screen. It doesn't clear the onboarding error state. The Purpose screen then shows the leftover domainControlledSubtitle error but translates it without the email, so the text reads "undefined is a domain controlled login…".
Recommended fix (roll forward, no revert needed): Clear the error state in the back handler at BaseOnboardingWorkEmail.tsx:365. The file already imports clearOnboardingMergeAccountBlocked.
If the fix can't land quickly, revert the PR instead. It's large and was already reverted and re-landed once, so a one-line fix is the safer choice.
Investigation details
AddWorkEmail fails with the domain-controlled error. The app saves the key onboarding.mergeBlockScreen.domainControlledSubtitle and sets isMergingAccountBlocked: true (Session/index.ts:1786-1793).
The Purpose screen translates any leftover error with no arguments (BaseOnboardingPurpose.tsx:253), so workEmail becomes undefined.
Why it happens only on staging: The domain-controlled message and the Purpose error line are already in production. Before this PR, the work email screen had no back button, so you couldn't reach Purpose with the error still set.
Other notes:
The fix also stops other onboarding errors (2FA, SSO, closed account) from showing up on Purpose after a back press.
The issue expects the domain (applause.expensifail.com), but the message inserts the full work email. That matches what the blocked view already shows.
I didn't reproduce this in a browser. The analysis is based on the code.
Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.
Activity
applause-bot commentedon Oct 14, 2026
While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/69346b24961269d31797e1f9a6b806bf2e1f5e1b250cd9ad1c4abd6b8da29591
melvin-bot commentedon Oct 14, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #103652
melvin-bot commentedon Oct 14, 2026
@iwiznia @abzokhattab you have been assigned to this deploy blocker because you reviewed the offending PR: #103652
melvin-bot commentedon Oct 14, 2026
@carlosmiceli you have been assigned to this deploy blocker because you authored the offending PR: #103652
github-actions commentedon Oct 14, 2026
👋 Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
melvin-bot commentedon Oct 14, 2026
💬 A slack conversation has been started in #expensify-open-source
MelvinBot commentedon Oct 14, 2026
Deploy Blocker Analysis
Causing PR: [Payment due @abzokhattab] Add the join-workspace onboarding intent and Concierge follow up tasks (high confidence). This is a frontend bug in App, not a backend issue.
Root cause: That PR added a back button to the work email screen for the join-workspace intent. The button only navigates back to the Purpose screen. It doesn't clear the onboarding error state. The Purpose screen then shows the leftover
domainControlledSubtitleerror but translates it without the email, so the text reads "undefined is a domain controlled login…".Recommended fix (roll forward, no revert needed): Clear the error state in the back handler at BaseOnboardingWorkEmail.tsx:365. The file already imports
clearOnboardingMergeAccountBlocked.If the fix can't land quickly, revert the PR instead. It's large and was already reverted and re-landed once, so a one-line fix is the safer choice.
Investigation details
AddWorkEmailfails with the domain-controlled error. The app saves the keyonboarding.mergeBlockScreen.domainControlledSubtitleand setsisMergingAccountBlocked: true(Session/index.ts:1786-1793).(workEmail: string | undefined) => ...(en.ts:3645). The blocked view passes it correctly (OnboardingMergingAccountBlockedView.tsx:42-44).workEmailbecomesundefined.Why it happens only on staging: The domain-controlled message and the Purpose error line are already in production. Before this PR, the work email screen had no back button, so you couldn't reach Purpose with the error still set.
Other notes:
applause.expensifail.com), but the message inserts the full work email. That matches what the blocked view already shows.Next Steps: Reply with
@MelvinBot implement thisto create a draft PR, or@MelvinBot <your feedback>to refine this analysis.view run
21 remaining items
melvin-bot commentedon Oct 22, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)melvin-bot commentedon Oct 22, 2026
Payment Summary
Resolving PRs:
Clear the onboarding work email error when pressing Back to the intent list #104017
Reviewer: @abzokhattab owed $175 via NewDot
BugZero Checklist (@mallenexpensify)
mallenexpensify commentedon Oct 26, 2026
@abzokhattab plz complete the Contributor+ checklist and tag me in a post once you have. Thx
melvin-bot commentedon Oct 29, 2026
@mallenexpensify Whoops! This issue is 2 days overdue. Let's get this updated quick!
mallenexpensify commentedon Oct 30, 2026
@abzokhattab plz complete the Contributor+ checklist and tag me in a post once you have. Thx
abzokhattab commentedon Oct 30, 2026
This is a part of the submit workspace ... closing
cc @garrettmknight