Skip to content

Chat - #admins room is marked as read after completing onboarding via /concierge link #104391

Closed

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.5.14-0
Reproducible in staging?: Yes
Reproducible in production?: No
If this was caught during regression testing, add the test name, ID and link from BrowserStack: #103681
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: Left Hand Navigation (LHN)

Action Performed:

  1. Go to staging.new.expensify.com/concierge
  2. Log in with new Gmail account.
  3. Complete onboarding with Submit to my employers intent.
    → #admins room is auto marked as read.
  4. Go to Account > Troubleshoot > Clear cache and restart > Reset and refresh.
  5. Go back to LHN.
    → #admins room is unread after reset app.

Expected Result:

In Step 3, #admins room should remain unread as the report is not opened.

Actual Result:

In Step 3, #admins room is marked as the report is not opened.
In Step 5, #admins room is unread after reset app.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7290504_1792433410766.2.mp4

View all open jobs on GitHub

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

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 19, 2026
  2. applause-bot commented on Oct 19, 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/5dea810d26a97d071527a38a7b1c2515f4770731270def57a2ed5755ba7c649a

  3. melvin-bot commented on Oct 19, 2026

    @melvin-bot

    You have been assigned to this deploy blocker because you recently merged this PR: #103681

  4. melvin-bot commented on Oct 19, 2026

    @melvin-bot

    @pecanoro @luacmartins @eh2077 you have been assigned to this deploy blocker because you reviewed the offending PR: #103681

  5. melvin-bot commented on Oct 19, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  6. github-actions commented on Oct 19, 2026

    @github-actions
    Contributor

    👋 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:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  7. MelvinBot commented on Oct 19, 2026

    @MelvinBot
    Contributor

    🔍 Investigation Summary

    Classification: Frontend bug
    Causing PR: Reapply opening a deep link captured before onboarding, without the Concierge regressions by mukhrr. I have high confidence it triggers this. The wrong read state underneath it is an older bug that is already in production.
    Related issues: [$175] LHN - #admin room already read after signed up as "submit expense to my employer" intention (open, reproducible in production on mobile web) and Chat - #admins room opens briefly after completing onboarding via /concierge link (closed).

    Recommendation: Revert

    Before this PR, a user who signed up through /concierge and chose "Submit to my employer" landed on Expenses with #admins open in the side panel. Opening #admins marked it read on the server, which hid an older bug. The PR now opens the Concierge chat instead, so #admins is never opened and the older bug shows. No later commits touch the PR's files, so the revert should be clean.

    You can reland the PR after one of these:

    📋 Detailed analysis

    Trigger (this PR)

    Older bug that now shows

    • Creating the workspace builds #admins locally with lastReadTime equal to lastVisibleActionCreated (ReportUtils.ts:9392-9393).
    • Server responses to write requests are applied only when the request queue empties (SequentialQueue.ts:321). In the PR's review thread, the author found that the welcome message arrives first, and older CreateWorkspace data then overwrites #admins as "read." The server still has it unread, so it shows unread after Clear cache and restart (step 5).

    Other notes

    • The PR merged on 2026-10-17 and is in 9.5.14-0. That matches a staging-only report.
    • Stop requiring lastActorAccountID to show a chat as unread is also on staging. It can only make chats show unread more often, so it can't explain step 3.
    • Fix instead of revert: In navigateToSubmitWorkspaceAfterOnboarding, don't let a held /concierge link override the Submit landing. This is small and restores the intended landing. Fixing the queue-ordering bug at its source is the right long-term fix, but it is risky to cherry-pick to staging.
    • Demote is possible, because the bug is already in production on mobile web and fixes itself after a reload. However, desktop users on this path lose the #admins welcome, so I recommend reverting.
    • I didn't reproduce this live, because the web test session couldn't sign in. These findings come from the PR diff, the current code and the PR review thread.

    view run

  8. luacmartins commented on Oct 19, 2026

    @luacmartins
    Contributor

    Seems like a duplicate of #101182. @jponikarchuk can you please confirm?

  9. grgia commented on Oct 20, 2026

    @grgia
    Contributor

    Since this is a dupe, it seems we can close this one. But the not repro in prod part is confusing. It sounds like there's two pieces here conflicting according to melvin. I'm going to comment in the thread

  10. grgia commented on Oct 20, 2026

    @grgia
    Contributor

    Closing as dupe

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

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.EngineeringHourlyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions