Repository navigation
[Due for payment 2026-08-17] [$250] Company cards - Unassigned "cards" is shown when one card is selected #97393
Description
Activity
- addedDeployBlockerCashThis issue or pull request should block deploymentThis issue or pull request should block deploymentBugSomething is broken. Auto assigns a BugZero manager.Something is broken. Auto assigns a BugZero manager.
on Jul 29, 2026 While Applause doesn't embed attachments for this bug, here are the links for quick view:
https://platform.applause.com/services/links/v1/external/3ee0abe565fd08d182e97afdec2254c11bea673f95ba26fcb37450bfa460587cYou have been assigned to this deploy blocker because you recently merged this PR: #94678
@JS00001 @ChavdaSachin you have been assigned to this deploy blocker because you reviewed the offending PR: #94678
💬 A slack conversation has been started in #expensify-open-source
github-actions commented
on Jul 29, 2026 on Jul 29, 2026 – with GitHub ActionsContributorMore actions👋 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:
- Identify the pull request that introduced this issue and revert it.
- Find someone who can quickly fix the issue.
- Fix the issue yourself.
🔍 Investigation Summary
Classification: Frontend bug
Causing PR: #94678 - "Add bulk actions for company cards" by @KJ21-ENG (High confidence)
Related Issues: #93334, #96047 (features implemented by the PR)Recommendation: ROLL FORWARD
This is a trivial, cosmetic pluralization miss in a brand-new feature (not in production). A one-line fix to select the singular translation key when a single card is selected is far safer and simpler than reverting the entire bulk-actions feature.
Assigned: @KJ21-ENG (PR author), @JS00001 and @ChavdaSachin (approving reviewers) from the causing PR.
Labels: No changes.DeployBlockerCashis kept (App deploy blocked, fix is inExpensify/App). NoDeployBlockerlabel was present.📋 Detailed Analysis
Evidence
- PR [Payment due @ChavdaSachin] Add bulk actions for company cards #94678 (merged 2026-07-29 13:14 UTC, ~8h before this blocker was filed) adds the multi-select bulk-action dropdown to the company cards table, including the "Unassign card(s)" menu item and the unassign confirmation modal — exactly the surface described in the bug.
- The GitHub file list for the PR confirms it added
src/components/Tables/WorkspaceCompanyCardsTable/WorkspaceCompanyCardsTableControls.tsxand modifiedsrc/languages/en.ts. - Reproducible on staging only; the feature does not exist in production, consistent with the PR being new to this release.
Verification
- Affected file:
src/components/Tables/WorkspaceCompanyCardsTable/WorkspaceCompanyCardsTableControls.tsx - The bulk-action dropdown builds its options in
getBulkActionOptions(). The unassign menu item hardcodes the plural key:
WorkspaceCompanyCardsTableControls.tsx#L146-L151—text: translate('workspace.moreFeatures.companyCards.unassignCards'). - The same plural-only issue exists in the confirmation modal:
WorkspaceCompanyCardsTableControls.tsx#L111-L112— titleunassignCardsand promptunassignCardsDescription. - Both singular and plural translation strings already exist, so no new copy is needed:
en.ts#L6294-L6298unassignCard: 'Unassign card'/unassignCards: 'Unassign cards'unassignCardDescription/unassignCardsDescription
Root Cause
The unassign action label and confirmation copy are wired to the plural translation keys unconditionally, with no branching on the selection count. Because
unassignCards("Unassign cards") is always used regardless of how many cards are selected, selecting exactly one card still renders the plural form.Recommended Fix
In
WorkspaceCompanyCardsTableControls.tsx, pick the key based on the number of selected assigned cards (selectedAssignedCards.length), e.g.:- Dropdown item text (L148):
translate(selectedAssignedCards.length === 1 ? 'workspace.moreFeatures.companyCards.unassignCard' : 'workspace.moreFeatures.companyCards.unassignCards') - Confirm modal title (L111): same singular/plural selection.
- Confirm modal prompt (L112):
translate(selectedAssignedCards.length === 1 ? 'workspace.moreFeatures.companyCards.unassignCardDescription' : 'workspace.moreFeatures.companyCards.unassignCardsDescription')
The singular keys already exist in
en.ts(and should be verified present in other locale files); no new copy strings are required.@MelvinBot for company cards bulk actions, the text copy for "unassign cards" does not have the singular string; please raise a PR
Reacted by KJ21-ENGReacted by melvin-botNAB, just a small copy change.
@JS00001Reacted by KJ21-ENG14 remaining items
- changed the title
[-][$250] Company cards - Unassigned "cards" is shown when one card is selected[/-][+][Due for payment 2026-08-17] [$250] Company cards - Unassigned "cards" is shown when one card is selected[/+]on Aug 10, 2026 The solution for this issue has been 🚀 deployed to production 🚀 in version 9.4.51-1 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-08-17. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero 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]
@ChavdaSachin 10 days overdue. I'm getting more depressed than Marvin.
@ChavdaSachin 12 days overdue. Walking. Toward. The. Light...
- addedAwaiting PaymentAuto-added when associated PR is deployed to productionAuto-added when associated PR is deployed to production
on Aug 16, 2026 Triggered auto assignment to @mallenexpensify (
Awaiting Payment)Payment Summary
Resolving PRs:
-
Reviewer: @ChavdaSachin owed $250 via NewDot
BugZero Checklist (@mallenexpensify)
- I have confirmed assignees, roles, and Upwork contracts look correct
- I have paid out Upwork contracts / manual NewDot requests
@ChavdaSachin is this due payment? If so, looks like $75 or $125 cuz it's a copy change?
No payment here.
It's good to close.Reacted by Matt Allen
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.
Version Number: 9.4.46-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: #94678
Email or phone of affected tester (no customers): applausetester+ssndjois2jd1@applause.expensifail.com
Issue reported by: Applause Internal Team
Bug source: Exploratory - Significant User Experience Deterioration
Device used: Mac 26.5 / Chrome
App Component: Workspace Settings
Action Performed:
Precondition:
Expected Result:
Unassigned "card" will be shown because one card is selected.
Actual Result:
Unassigned "cards" is shown when one card is selected.
Workaround:
Unknown
Platforms:
Screenshots/Videos
Bug7221273_1785359498323.2.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @mallenexpensify