Skip to content

Campfire - Unable to clear the custom account after selecting it #102721

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.0-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: #102410
Email or phone of affected tester (no customers): n/n
Issue reported by: Applause Internal Team
Bug source: Pull Request QA execution
Device used: Mac 26.5.1 Safari, iPhone 13 iOS 26.6
App Component: Workspace Settings

Action Performed:

Precondition:Have a workspace with multiple assigned cards from different feeds (e.g. a Expensify Card and a Company Card)
Have Campfire integration connected to workspace

  1. Go to https://staging.new.expensify.com
  2. Go to Accouting
  3. Click on Export
  4. Enable the Configure exporting to multiple accounts toggle
  5. Verify two more option rows appeared Card program account and Per-card account
  6. Update the Card program account for each program
  7. Update the Per-card account for each card

Expected Result:

The user should be able to deselect the custom account for each program and card

Actual Result:

Unable to clear the custom account after selecting it

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7274029_1790822135835.Recording__3078.mp4

View all open jobs on GitHub

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

Activity

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

  3. melvin-bot commented on Oct 1, 2026

    @melvin-bot

    @lakchote recently merged #102410, but they are OOO right now, so I'll auto-assign someone else.

  4. melvin-bot commented on Oct 1, 2026

    @melvin-bot

    Triggered auto assignment to @blimpich (DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.

  5. github-actions commented on Oct 1, 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.
  6. melvin-bot commented on Oct 1, 2026

    @melvin-bot

    @lakchote @truph01 you have been assigned to this deploy blocker because you reviewed the offending PR: #102410

  7. melvin-bot commented on Oct 1, 2026

    @melvin-bot

    @s77rt you have been assigned to this deploy blocker because you authored the offending PR: #102410

  8. melvin-bot commented on Oct 1, 2026

    @melvin-bot

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

  9. MelvinBot commented on Oct 1, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Investigation

    Causing PR: Add Campfire multiple card account export settings (Expensify/App#102410) added both screens. It is in the open Deploy Checklist: New Expensify 2026-09-30.

    Recommendation: demote to a follow-up. Don't revert. This is a new feature behind the Campfire integration, so it isn't in production. There's no data-loss or payment risk.

    Likely explanation: Clearing works, but only by picking the "Default - …" row at the top of the list. Tapping the custom account that is already selected does nothing; the page just closes. That matches "unable to deselect." DualEntry and Rillet already use the same pattern.

    Next step: Ask the tester whether they tried the "Default - …" row.

    • If that row cleared the account, close this issue or treat it as a UX follow-up.
    • If the custom account came back, the cause is likely on the backend. A separate internal investigation is needed.
    Investigation details

    Card program account: CampfireCardProgramAccountSelectorPage.tsx

    • L74 labels the workspace "Company card account" as "Default - …", and L79 pins it to the top.
    • L99 skips the update when you tap the row that is already selected.
    • L100-L103: picking the Default row sends '', which clears the custom account (Campfire.ts L533).

    Per-card account: utils.tsx L169-L180 gives the program account's row the "Default - …" label and the value ''. That value is passed through DynamicWorkspaceCompanyCardAccountSelectCardPage.tsx L94-L103 and clears the card's custom account in CompanyCards.ts L924-L925.

    Real gap that could explain the report: No row gets the Default label in either of these cases, so the custom account can't be cleared:

    • On the program screen, the workspace "Company card account" is unset, or the filter at L67-L71 removes it because it's inactive or isn't a credit card or bank account.
    • On the per-card screen, the program's account isn't selectable.

    Suggested follow-up fix: Ideally, change the shared pattern so DualEntry and Rillet get the fix too.

    • Always show a clear option when a custom account is set. Use a "Default" row even when the default account is filtered out, or add a "None / use default" row.
    • Optionally, let a tap on the selected custom row clear it instead of doing nothing at L99.

    Reach: Campfire shows only for the campfire beta or for workspaces already connected to Campfire (PolicyAccountingPage.tsx L144).

    Limitation: I couldn't view the Applause video, so I can't confirm which row the tester tapped.


    Next Steps: Reply with @MelvinBot <your feedback> to refine this analysis.


    view run

  10. Julesssss commented on Oct 1, 2026

    @Julesssss
    Contributor

    New feature so don't think this needs to block, asking in Slack.

  11. added and removed
    DeployBlockerCashThis issue or pull request should block deployment
    on Oct 1, 2026
  12. blimpich commented on Oct 1, 2026

    @blimpich
    Contributor

    this is behind a beta so not a blocker

  13. removed their assignment
    on Oct 1, 2026
  14. lakchote commented on Oct 2, 2026

    @lakchote
    Contributor

    @s77rt can you take a look at this one please? Looks like it affects DualEntry and Rillet too.

  15. s77rt commented on Oct 2, 2026

    @s77rt
    Member

    There is no bug here. This is working as expected, to clear the selection you should select the Default option at the top

    Screen.Recording.2026-10-02.at.7.29.39.AM.mov
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.DailyKSv2Engineering

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions