Skip to content

Tags - Error importing CSV when appending custom tag list #104904

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.20-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: #103359
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: Money Requests

Action Performed:

Precondition:

  • Use Gmail account and enable indirectTagUploads beta
  • Connect to NetSuite.
  1. Go to staging.new.expensify.com
  2. Go to workspace settings > Accounting.
  3. Click Import > Departments > Tag.
  4. Click Import > Classes > Tag.
  5. Go to Tags.
  6. Click More > Append custom tag list.
  7. Upload multi level tag CSV.

Expected Result:

Import will be successful.

Actual Result:

Import fails.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7294610_1792776160617.1.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Svetlana Lazutkina
Bug ID: 7294610

Activity

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

  3. melvin-bot commented on Oct 23, 2026

    @melvin-bot

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

  4. melvin-bot commented on Oct 23, 2026

    @melvin-bot

    @yuwenmemon @suneox you have been assigned to this deploy blocker because you reviewed the offending PR: #103359

  5. melvin-bot commented on Oct 23, 2026

    @melvin-bot

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

  6. github-actions commented on Oct 23, 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 23, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Investigation

    Recommendation: Demote, don't revert. The flow comes from Add Append custom tag list for accounting-connected workspaces on the indirectTagUploads beta, but its App code sends the request correctly. The server rejects the import. The most likely cause is that the tester's account is not on the indirectTagUploads beta on the server. The feature is beta-only and not in production. The regular import path is unchanged.

    Next step: yuwenmemon, please add the Applause tester account (or an Expensifail account) to the server-side indirectTagUploads beta, then rerun the repro.

    Investigation details

    Links use staging commit 207270a.

    • The request is correct. importMultiLevelTags sends appendToExistingLists: true with isIndependent, isFirstLineHeader, isGLAdjacent, and the file (src/libs/actions/Policy/Tag.ts:954-964).
    • "Import failed" means the server rejected it. The modal comes only from failureData (Tag.ts:923-925) and is generic (src/libs/actions/ImportSpreadsheet.ts:88-93), so the server's message is hidden.
    • The menu only checks the beta on the client. See src/pages/workspace/tags/WorkspaceTagsPage.tsx:499. Outside production, Troubleshoot > Beta overrides can turn it on (src/libs/Permissions.ts:18-41). The server checks the beta separately. The repro says "Use Gmail account and enable indirectTagUploads beta," which likely means the client override.
    • This happened before on the PR. On 2026-10-15, suneox got "This feature is not available for your account" until they were added to the beta. On the day of this report, QA asked on the PR which account to use for the beta. Nobody answered before this bug was filed.
    • Two other possible causes:
      1. The PR thread notes that only one custom tag list can be appended, matching Classic. A multi-level CSV can contain several lists.
      2. The PR was tested on a workspace with one NetSuite list. This repro imports Departments and Classes, so there are two.
    • No other PR in this staging deploy changes the import request.

    To narrow it down:

    1. Retry with an account on the server-side beta.
    2. If it still fails, upload a one-column CSV. If that works, the cause is the one-list limit.
    3. Capture the ImportMultiLevelTags response jsonCode and message from the network tab.

    Resolution by outcome:

    • Passes after beta enrollment, or fails only on a multi-list CSV: demote. Optional follow-up: show the server's error in the "Import failed" modal.
    • Fails for an enrolled account with a one-column CSV on a two-list workspace: roll forward, either with backend support or by limiting the menu condition at WorkspaceTagsPage.tsx:499 to single-list workspaces. A revert isn't needed because it's beta-only.

    view run

  8. suneox commented on Oct 26, 2026

    @suneox
    Contributor

    I cannot reproduce this issue on the latest staging v9.5.20-0

    CleanShot.2026-10-26.at.09.39.55.1.mp4
  9. suneox commented on Oct 26, 2026

    @suneox
    Contributor

    I cannot reproduce this issue on the latest staging v9.5.20-0

    @Expensify/applause Could we re-test this bug? It looks like the BE wasn't ready during test

  10. IuliiaHerets commented on Oct 26, 2026

    @IuliiaHerets

    @suneox, the original tester can still reproduce this issue with a Gmail account

    Screen.Recording.2026-10-26.at.20.24.23.mov
  11. suneox commented on Oct 26, 2026

    @suneox
    Contributor

    @suneox, the original tester can still reproduce this issue with a Gmail account

    We need to wait for @yuwenmemon to add a test email ([email protected]) to the indirectTagUploads beta.

  12. jasperhuangg commented on Oct 26, 2026

    @jasperhuangg
    Contributor

    @suneox I've added the account to the beta

  13. jasperhuangg commented on Oct 26, 2026

    @jasperhuangg
    Contributor
  14. m-natarajan commented on Oct 26, 2026

    @m-natarajan

    Windows 10 / Chrome, Not Repro, v9.5.20-5

    bandicam.2026-10-26.15-18-45-936.mp4
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