Skip to content

[Due for payment 2026-10-21] [$175] Not here page opens when creating new workspace from FAB on Account and Insights tab #102095

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


Version Number: 9.4.92-5
Reproducible in staging?: Yes
Reproducible in production?: Yes
If this was caught during regression testing, add the test name, ID and link from BrowserStack: https://test-management.browserstack.com/projects/2219752/test-runs/TR-76906/41237401/1789560056?sort=-identifier
Email or phone of affected tester (no customers): njosdnjonsdjiojiosj@gmail.com
Issue reported by: Applause Internal Team
Bug source: Regression TC Execution
Device used: Mac 26.5 / Chrome
App Component: Workspace Settings

Action Performed:

  1. Go to staging.new.expensify.com
  2. Create a new Gmail account.
  3. Complete onboarding with Something else intent.
  4. Go to Account.
  5. Open FAB > New workspace.

Expected Result:

New workspace confirm page will open.

Actual Result:

Not here page opens when creating new workspace from FAB on Account tab.
This issue also happens on Insights tab when insightPage beta is enabled.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7267310_1790170537256.7.1.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7267310

Issue OwnerCurrent Issue Owner: @mallenexpensify
Upwork Automation - Do Not Edit

Activity

  1. added
    BugSomething is broken. Auto assigns a BugZero manager.
    on Sep 23, 2026
  2. applause-bot commented on Sep 23, 2026

    @applause-bot
    Author

    While Applause doesn't embed attachments for this bug, here are the links for quick view:
    https://platform.applause.com/services/links/v1/external/e651876098750de3d5c0040c96408e30052ef7ba2eb877ea89e85b8d117742e5

  3. MelvinBot commented on Sep 23, 2026

    @MelvinBot
    Contributor

    Proposal

    What is the root cause of that problem?

    WORKSPACE_CONFIRMATION is a dynamic route — it is appended as a suffix to whatever path is currently active, and it is only allowed to open from a whitelist of screens (src/ROUTES.ts:235-238):

    entryScreens: [SCREENS.HOME, SCREENS.INBOX, SCREENS.REPORT, SCREENS.SEARCH.ROOT, SCREENS.WORKSPACES_LIST, SCREENS.SETTINGS.ROOT],

    The FAB item calls createDynamicRoute(...) with no basePath (NewWorkspaceMenuItem.tsx:58), so the base path is whatever getActiveRoute() returns (createDynamicRoute.ts:77). On the two broken tabs that active path resolves to a screen that is not in the whitelist:

    • Account tab, wide layout: SettingsSplitNavigator pushes SCREENS.SETTINGS.PROFILE.ROOT as the central pane and makes it the focused route (SettingsSplitNavigator.tsx:46, SplitRouter.ts:117). The URL is settings/profile, not settings, so the built route is settings/profile/workspace/confirmation. SETTINGS.PROFILE.ROOT is not whitelisted — only SETTINGS.ROOT is.
    • Insights tab: the active path is insights/:dashboardID → focused route SCREENS.INSIGHTS, which is not in the list at all.

    The whitelist check fails at getStateFromPath.ts:49, the path falls through to React Navigation's parser, matches nothing, and lands on the '*' → SCREENS.NOT_FOUND catch-all (config.ts:40) — the "Not here" page.

    This also explains why only Windows: Chrome and MacOS: Chrome/Safari are ticked: on a narrow layout the split navigator pushes no central pane, so the Account tab URL stays settings, SETTINGS.ROOT matches, and the flow works.

    What changes do you think we should make in order to solve the problem?

    The FAB is rendered in the navigation tab bar, so it is reachable from every tab and every central-pane screen. The whitelist for this one route should reflect that — widen DYNAMIC_ROUTES.WORKSPACE_CONFIRMATION.entryScreens in src/ROUTES.ts:237 to ['*'], which the validator already supports and which ~10 other dynamic routes already use.

    Add a case to tests/navigation/workspaceConfirmationEntryScreensTest.ts asserting that settings/profile/workspace/confirmation and insights/<dashboardID>/workspace/confirmation resolve to the confirmation screen rather than SCREENS.NOT_FOUND.

    No change is needed to the child routes (currency, plan type, owner selector) — they key off SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT and work once the root opens.

    What alternative solutions did you explore? (Optional)

    Two narrower options and why I'd not pick them

    1. Enumerate the missing screens — add SCREENS.INSIGHTS plus every Account-tab central screen (SETTINGS.PROFILE.ROOT, SETTINGS.WALLET.ROOT, SETTINGS.SECURITY, …). This fixes the reported repro but is fragile: any new settings page or new tab silently reintroduces the bug, because the FAB is global and the whitelist is not.

    2. Pass a fixed basePath to createDynamicRoute in NewWorkspaceMenuItem, the way WorkspaceListTable passes ROUTES.WORKSPACES_LIST.route. This works, but it changes what sits behind the RHP and where dismiss returns the user, so it's a UX change rather than a bug fix.

    Not verified in a browser. Browser control was unavailable for this run, so this is static analysis of the navigation code only. Worth confirming the URL on the Account tab really reads settings/profile before implementing.

    Possibly related

    • Teacher Unite - QAB open not here page (Expensify/App#101092) — open, same "Not here from the FAB on Windows Chrome" family, different dynamic route (QAB). May share the entry-screen validation root cause.

    Next Steps for Contributor+ team:
    To accept: @MelvinBot implement [this](https://github.com/Expensify/App/issues/102095) to create a draft PR.
    To refine: @MelvinBot <your feedback>
    To reject: Explain why you are rejecting Melvin's proposal.


    view run

  4. added
    ExternalAdded to denote the issue can be worked on by a contributor
    on Sep 23, 2026
  5. melvin-bot commented on Sep 23, 2026

    @melvin-bot

    Triggered auto assignment to Contributor-plus team member for initial proposal review - @dmkt9 (External)

  6. melvin-bot commented on Sep 23, 2026

    @melvin-bot

    Unable to auto-create job on Upwork. The BZ team member should create it manually for this issue.

  7. naufalfx805-source commented on Sep 24, 2026

    @naufalfx805-source
  8. naufalfx805-source commented on Sep 24, 2026

    @naufalfx805-source
  9. melvin-bot commented on Sep 24, 2026

    @melvin-bot

    ✅ Contributor details stored successfully. Thank you for contributing to Expensify!

  10. melvin-bot commented on Sep 28, 2026

    @melvin-bot

    @dmkt9 Eep! 4 days overdue now. Issues have feelings too...

  11. dmkt9 commented on Sep 29, 2026

    @dmkt9
    Contributor

    MelvinBot's proposal looks good to me

    🎀 👀 🎀 C+

  12. 28 remaining items

  13. added
    Awaiting PaymentAuto-added when associated PR is deployed to production
    and removed on Oct 14, 2026
  14. melvin-bot commented on Oct 20, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  15. melvin-bot commented on Oct 20, 2026

    @melvin-bot

    Payment Summary

    Resolving PRs:

    Upwork Job

    • Assignee: @dmkt9 requires payment (Needs manual offer from BZ)

    BugZero Checklist (@mallenexpensify)

    • I have confirmed assignees, roles, and Upwork contracts look correct
    • I have paid out Upwork contracts / manual NewDot requests
    • [BugZero Assignee] I have created a GH issue for creating/updating the regression test once above steps have been agreed upon
  16. mallenexpensify commented on Oct 21, 2026

    @mallenexpensify
    Contributor

    Payment Summary

    Contributor+: @dmkt9 due $175 via Upwork

    @dmkt9 paid, summary updated above. Thx.

    https://www.upwork.com/jobs/~022109560758800481392

  17. mallenexpensify commented on Oct 21, 2026

    @mallenexpensify
    Contributor

    @MelvinBot , why wasn't @dmkt9 sent a job offer in Upwork? They've been a contributor for a while. If they need to enter their Upwork details again, please share exactly what they need to enter. cc @akinwale cuz we've been working on fixing the integration.

  18. MelvinBot commented on Oct 21, 2026

    @MelvinBot
    Contributor

    The bot has never stored an Upwork ID for dmkt9, so it can't send them an automatic offer. Their contributor details (email and profile link) are already on file, so re-entering those won't help. Reposting them just returns 401 Contributor details already exist.

    The bot stores the Upwork ID only when the contributor applies to a bot-created Upwork job. dmkt9 has been paid through manual BZ offers, which skip that step. As a result, the bot has posted "We're missing your Upwork ID" on about 37 of their issues since March.

    What dmkt9 needs to do: submit a proposal on Upwork, from the same account as their profile link, to the job in the latest prompt: upwork.com/jobs/~022108111025467606168 on [$175] Choosing a large file to share doesn't redirect App to Home after attach error msg appears. They don't need to post anything on GitHub.

    Caveats
    • I can't see the bot's internal code, so this is based on its public comments. If dmkt9 has already applied to a bot-created job and still gets the prompt, the ID capture is broken. That needs an internal check.
    • Possibly related to the integration work: Upwork job auto-creation fails more often now. "Unable to auto-create job on Upwork" appears on about 27% of issues created since June, compared with about 7% from January to May. That didn't cause this case, because the jobs on dmkt9's issues were created fine.

    view run

  19. mallenexpensify commented on Oct 21, 2026

    @mallenexpensify
    Contributor

    What dmkt9 needs to do: submit a proposal on Upwork, from the same account as their profile link, to the job in the latest prompt: upwork.com/jobs/~022108111025467606168 on #103430. They don't need to post anything on GitHub.

    @dmkt9 can plz do so and confirm once you have? Thx

  20. dmkt9 commented on Oct 22, 2026

    @dmkt9
    Contributor

    @dmkt9 can plz do so and confirm once you have? Thx

    @mallenexpensify I'm seeing this message: "This job is private. Only freelancers invited by the client can view this job." I can't view the job details.

    Image
  21. mallenexpensify commented on Oct 22, 2026

    @mallenexpensify
    Contributor

    @dmkt9 I just made this job public, can you submit a proposal on it?
    https://www.upwork.com/jobs/~022108111025467606168

    @dmkt9 , can you please accept the job below (for payment on this job)? Please reply here and tag me once you have.
    https://www.upwork.com/jobs/~022113380053525892208

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionBugSomething is broken. Auto assigns a BugZero manager.DailyKSv2ExternalAdded to denote the issue can be worked on by a contributor

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions