Skip to content

HybridApp deep link always opens OldDot, ignoring tryNewDot NVP #98153

Open
2 of 6 issues completed
Open

Description

@Julesssss

Clone of internal issue

Problem

Tapping a deep link such as expensify.com/inbox from a native app opens the Expensify OldDot inbox even when the user is set to the NewDot experience. We need to fix this generally, but specifically forAuris who want a single URL for a button in their mobile app.

Solution

Apply the tryNewDot NVP check to the incoming expensify.com/inbox (and equivalent) deep links in HybridApp and route NewDot users to NewDot Home, matching web.

For a wider solution I created a long list of expected deep link behaviour here.

Activity

  1. self-assigned this
    on Aug 10, 2026
  2. added
    ImprovementItem broken or needs improvement.
    InternalRequires API changes or must be handled by Expensify staff
    on Aug 10, 2026
  3. Julesssss commented on Aug 10, 2026

    @Julesssss
    ContributorAuthor
  4. trjExpensify commented on Aug 11, 2026

    @trjExpensify
    Contributor

    Perf, thank you and thank you @war-in for picking it up. For some added context, we're getting a new partner up and running on an integration in the coming weeks and they're going to use this one - so we need to get the redirect working reliably as some mutual customers might be on NewDot and others Classic. Thanks!

  5. Julesssss commented on Aug 11, 2026

    @Julesssss
    ContributorAuthor

    Discussing some of the details here in the slack thread

  6. war-in commented on Aug 12, 2026

    @war-in
    Contributor

    I deep-dived into the codebase and prepared a plan for implementing that feature:

    1. Align apple-app-site-association with AndroidManifest so Android and iOS handle the same links
    2. Move deeplink handling logic to JS side of OldDot from native, so the behaviour stays aligned between platforms. Also, deeplink resolving logic for locked users is already defined on JS side.
    3. Implement deeplink translation for all ND users

    Splitting that work into multiple PRs will allow for better readability and will simplify reviewing & testing process.

  7. Julesssss commented on Aug 17, 2026

    @Julesssss
    ContributorAuthor

    PR looking good, added 2 comments about the app lifecycle.

  8. war-in commented on Aug 18, 2026

    @war-in
    Contributor

    PR looking good, added 2 comments about the app lifecycle.

    @Julesssss comments addressed; thank you!
    Also, how do you feel about testing the app? I know there are issues with testing the iOS app on adhocs but android should be testable. Could we ask the QA team to perform deeplink-related regression testing on the PR, so we catch all errors early?

  9. Julesssss commented on Aug 18, 2026

    @Julesssss
    ContributorAuthor

    For testing I think the tests I really trust will be on staging/production so we should keep an eye out for those deploys and be quick to resolve/revert, I think we may be missing some of the Apple route that are defined in the site-association-something file that lives on our web app. Let me know if I'm mistaken there though please.

    I can generate AdHocs as a first pass, I would love to generate a production Android build locally too but sadly don't think I'm going to find time for that 😞

  10. war-in commented on Aug 19, 2026

    @war-in
    Contributor

    @Julesssss I think that we can test on staging if you're fine with it 👍 We can also ask a C+ for the first look on adhocs which should make us a bit more confident before the merge. Could you trigger an adhoc on the PR and ask someone to test Android?

  11. 15 remaining items

  12. war-in commented on Sep 10, 2026

    @war-in
    Contributor

    This still applies. @Julesssss can we make it at least weekly?

  13. melvin-bot commented on Oct 5, 2026

    @melvin-bot

    This issue has not been updated in over 15 days. @Julesssss, @war-in eroding to Monthly issue.

    P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!

  14. aimane-chnaif commented on Oct 11, 2026

    @aimane-chnaif
    Contributor

    Assigning myself since I reviewed the linked PR

  15. Julesssss commented on Oct 15, 2026

    @Julesssss
    ContributorAuthor

    Updated todo list:
    Sorry for delays @war-in @aimane-chnaif, I think these are the next steps:

  16. Julesssss commented on Oct 20, 2026

    @Julesssss
    ContributorAuthor

    We're close to the Wildcard deeplinks PR, it's now in final review. But if merged today it will hit prod until Thursday at the earliest.

    This is a big change to many flows including unknown cases, so that isn't enough time for us to verify and catch regressions. I'm going ooo starting Thursday so to be safe we'll hold the changes until I'm back.

    I thought about handing over but this is a pretty annoying mobile task with a chain of PRs and lots of testing needed on prod, pretty tough people unfamiliar with HybridApp 😕


    Here's the plan and next steps:

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

Metadata

Metadata

Labels

EngineeringImprovementItem broken or needs improvement.InternalRequires API changes or must be handled by Expensify staffWeeklyKSv2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions