Skip to content

[Due for payment 2026-11-02] [CFI] [$175] Support appending a custom tag list next to accounting-connection tags in NewDot (indirectTagUploads) #102308

Open

Description

@m-natarajan

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


Version Number:
Reproducible in staging?: Needs Reproduction (Reproduction blocked - No access to beta)
Reproducible in production?: Needs Reproduction
If this was caught during regression testing, add the test name, ID and link from BrowserStack:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @twisterdotcom
Slack conversation (hyperlinked to channel name): #Expensify Bugs

Action Performed:

Preconditions: a Control workspace connected to NetSuite, with tags imported from NetSuite. The admin's domain is on the indirectTagUploads beta. Not reproduced on a test workspace: the beta is set per domain or account

  1. In Classic, open Settings > Workspaces > [workspace] > Tags. Note the button "Append a custom tag list from a CSV" under the integration banner.
  2. In New Expensify, open Workspaces > [workspace] > Tags.
  3. Select More.
  4. Note that the dropdown has no import or append option.

Expected Result:

New Expensify shows "Append custom tag list" in More for accounts on the beta, and the import keeps the NetSuite lists, the same as Classic.

Actual Result:

More has no option to import or append tags. A direct link to the import page shows the not-found page. Customers cannot add their indirect tag list(s) in New Expensify. This blocks their NetSuite workspace from migrating. Every account on the beta hits this at migration. Code pointers in Slack thread

Workaround:

Append the list in Classic. New Expensify reads the same tag lists. This route ends at the Classic cutover. The customer knows.

Platforms:

Select the officially supported platforms where the issue was reproduced:

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

Screenshots/Videos

View all open jobs on GitHub

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

Activity

  1. added
    BugSomething is broken. Auto assigns a BugZero manager.
    on Sep 25, 2026
  2. MelvinBot commented on Sep 25, 2026

    @MelvinBot
    Contributor

    Proposal

    What is the root cause of that problem?

    New Expensify never supported importing tags on a workspace with an accounting connection. The indirectTagUploads beta doesn't exist in App.

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

    ⚠️ This needs backend work first. An internal engineer must add an append mode that adds a tag list and keeps the NetSuite lists. That engineer must also confirm a NetSuite sync won't wipe appended lists. The App repo can't make these changes.

    After the backend supports append, make these App changes:

    1. Add INDIRECT_TAG_UPLOADS: 'indirectTagUploads' to CONST.BETAS.
    2. In WorkspaceTagsPage, add an "Append custom tag list" item to More when:
      • the user can write tags;
      • the workspace has an accounting connection; and
      • the beta is on.
    3. Have that item set an "append" flag on the imported spreadsheet. Then send the user straight to the file import. This skips the options page and its "override" and "erase all tags" modals.
    4. Relax the NotFoundPage guards in ImportTagsPage and ImportMultiLevelTagsSettingsPage. Allow the page when the beta is on and the append flag is set.
    5. Pass the new append parameter in importMultiLevelTags. Force the list to be independent, and hide the dependent toggle.
    6. Add the new menu label to every src/languages/*.ts file.

    What alternative solutions did you explore? (Optional)

    You could remove the accounting-connection guard for beta users and keep the current import. That would override or corrupt the NetSuite lists, so it doesn't meet the expected result.

    Investigation details
    • The same hasAccountingConnections check also hides Add tag (WorkspaceTagsPage.tsx:553) and bulk Delete (:584). Leave both unchanged.
    • Nothing recent changed this gating. It is a missing feature, not a regression.
    • I couldn't reproduce this in the app, because test accounts can't get the beta.
    • Confidence is high on the App gating. It is medium on "replace vs. append." I inferred that from the API parameters and UI copy, not from backend code.
    • The quick search found no duplicate issues.

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


    view run

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

    @melvin-bot

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

  5. changed the title [-]New Expensify cannot append a custom tag list next to accounting-connection tags (indirectTagUploads beta). Classic can.[/-] [+][$175] New Expensify cannot append a custom tag list next to accounting-connection tags (indirectTagUploads beta). Classic can.[/+] on Sep 25, 2026
  6. melvin-bot commented on Sep 25, 2026

    @melvin-bot
  7. changed the title [-][$175] New Expensify cannot append a custom tag list next to accounting-connection tags (indirectTagUploads beta). Classic can.[/-] [+][CFI] [$175] New Expensify cannot append a custom tag list next to accounting-connection tags (indirectTagUploads beta). Classic can.[/+] on Sep 25, 2026
  8. changed the title [-][CFI] [$175] New Expensify cannot append a custom tag list next to accounting-connection tags (indirectTagUploads beta). Classic can.[/-] [+][CFI] [$175] Support appending a custom tag list next to accounting-connection tags in NewDot (indirectTagUploads)[/+] on Sep 28, 2026
  9. trjExpensify commented on Sep 28, 2026

    @trjExpensify
    Contributor

    @suneox what do you think about Melvin's proposed implementation?

  10. suneox commented on Sep 28, 2026

    @suneox
    Contributor

    @suneox what do you think about Melvin's proposed implementation?

    I'll take a look at this in few hours

  11. 22 remaining items

  12. melvin-bot commented on Oct 26, 2026

    @melvin-bot

    ⚠️ Looks like this issue was linked to a Deploy Blocker here

    If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.

    If a regression has occurred and you are the assigned CM follow the instructions here.

    If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.

  13. changed the title [-][CFI] [$175] Support appending a custom tag list next to accounting-connection tags in NewDot (indirectTagUploads)[/-] [+][Due for payment 2026-11-02] [CFI] [$175] Support appending a custom tag list next to accounting-connection tags in NewDot (indirectTagUploads)[/+] on Oct 26, 2026
  14. melvin-bot commented on Oct 26, 2026

    @melvin-bot

    @suneox

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.20-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

    If no regressions arise, payment will be issued on 2026-11-02. 🎊

    The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ Checklist from here into a new comment on this GH and complete it. If you have the K2 extension, you can simply click: [this button]. If no checklist is needed for this issue, you can click: [no checklist button]

  15. suneox commented on Oct 27, 2026

    @suneox
    Contributor

    Contributor+ Checklist:

    • [Contributor] The offending PR and associated issue have been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.

      N/A — this is a new feature (adding "Append custom tag list" for workspaces with an accounting connection on the indirectTagUploads beta), so there is no offending PR.

    • [Contributor] If the regression was CRITICAL (e.g. interrupts a core flow) A discussion in #expensify-open-source has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner.

      N/A

    • [Contributor] If it was decided to create a regression test for the bug, please propose the regression test steps using the template below to ensure the same bug will not reach production again.

    Regression Test Proposal

    Precondition:

    • Account is on the indirectTagUploads beta.
    • Control workspace connected to NetSuite, with Departments imported as tags (Accounting > NetSuite > Import > Departments > Tags).
    • An independent multi-level tags CSV.

    Test:

    1. Go to Workspaces > [workspace] > Tags.
    2. Click More.
    3. Verify "Append custom tag list" is shown and "Import spreadsheet" is not.
    4. Click "Append custom tag list" and upload the CSV, then click Next > Import.
    5. Verify the import completes, the NetSuite tag list is still there, and the lists from the CSV appear next to it.

    Do we agree 👍 or 👎

  16. suneox commented on Oct 27, 2026

    @suneox
    Contributor

    Linked deploy blockers

    2 deploy blockers were linked to #103359:

  17. trjExpensify commented on Oct 28, 2026

    @trjExpensify
    Contributor

    @suneox is that saying this issue is left to complete? #105001

  18. suneox commented on Oct 29, 2026

    @suneox
    Contributor

    42. @suneox is that saying this issue is left to complete? #105001

    @trjExpensify No, this issue's scope is done, #105001 is not caused by #103359. That PR doesn't change the tag-list rename flow (DynamicWorkspaceEditTagsPage, DynamicWorkspaceViewTagsPage, renamePolicyTagList)

  19. trjExpensify commented on Oct 29, 2026

    @trjExpensify
    Contributor

    Backend bug or not, I think it's still related to this new feature of being allowed to append a tag list alongside accounting imported ones. So we should resolve it before calling this feature release "done". @yuwenmemon do you agree with that, and are you or do you have someone looking into #105001?

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.ExternalAdded to denote the issue can be worked on by a contributorWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions