Repository navigation
[Due for Payment 2026-05-26][$250] No checkmark displayed for selected recipient in choose recipient page #72129
Description
Activity
- addedDailyKSv2KSv2BugSomething is broken. Auto assigns a BugZero manager.Something is broken. Auto assigns a BugZero manager.
on Oct 8, 2025 Triggered auto assignment to @RachCHopkins (
Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.🚨 Edited by proposal-police: This proposal was edited at 2025-10-15 09:21:08 UTC.
Proposal
Please re-state the problem that we are trying to solve in this issue.
No checkmark displayed for selected recipient in choose recipient page
What is the root cause of that problem?
We passed an empty array for participants when its not a split request
participants={isSplitRequest ? participants : getEmptyArray()} Additionally, when a self DM is selected, it calls
trackExpensewhich callssetMoneyRequestParticipantsFromReportApp/src/pages/iou/request/step/IOURequestStepParticipants.tsx
Lines 210 to 213 in 5c27729
if (firstParticipant?.isSelfDM) { trackExpense(); return; } It then call
getMoneyRequestParticipantsFromReportwhich create a minimal participant object for self DM reports withaccountID: 0, and missinglogin,text,isSelfDMfield, making the self DM to displayed as "Hidden"Lines 11382 to 11383 in 5c27729
if (isPolicyExpenseChatReportUtil(chatReport) || shouldAddAsReport) { participants = [{accountID: 0, reportID: chatReport?.reportID, isPolicyExpenseChat: isPolicyExpenseChatReportUtil(chatReport), selected: true}]; What changes do you think we should make in order to solve the problem?
Change the participants prop to always include the participants data, not just for split requests
participants={participants}
participants={isSplitRequest ? participants : getEmptyArray()} We also need to filter out selected workspace participants and self DM from the workspace section to prevent duplication
const availableWorkspaceChats = (chatOptions.workspaceChats ?? []).filter((workspaceChat) => { const isWorkspaceChatSelected = participants.some( (participant) => participant.reportID === workspaceChat.reportID || (participant.accountID && participant.accountID === workspaceChat.accountID), ); return !isWorkspaceChatSelected; }); newSections.push({ title: translate('workspace.common.workspace'), data: availableWorkspaceChats, shouldShow: availableWorkspaceChats.length > 0, });
App/src/pages/iou/request/MoneyRequestParticipantsSelector.tsx
Lines 296 to 300 in 5c27729
newSections.push({ title: translate('workspace.common.workspace'), data: chatOptions.workspaceChats ?? [], shouldShow: (chatOptions.workspaceChats ?? []).length > 0, }); const isSelfDMSelected = participants.some((participant) => participant.reportID === chatOptions.selfDMChat?.reportID); newSections.push({ title: translate('workspace.invoices.paymentMethods.personal'), data: chatOptions.selfDMChat && !isSelfDMSelected ? [chatOptions.selfDMChat] : [], shouldShow: !!chatOptions.selfDMChat && !isSelfDMSelected, });
App/src/pages/iou/request/MoneyRequestParticipantsSelector.tsx
Lines 302 to 306 in 5c27729
newSections.push({ title: translate('workspace.invoices.paymentMethods.personal'), data: chatOptions.selfDMChat ? [chatOptions.selfDMChat] : [], shouldShow: !!chatOptions.selfDMChat, }); We should update the
trackExpensefunction as well to add essential field for self DM. Instead of callingsetMoneyRequestParticipantsFromReport, we can directly create the correct self DM participant object and callsetMoneyRequestParticipantsconst currentUserPersonalDetails = useCurrentUserPersonalDetails(); ... transactions.forEach((transaction) => { setCustomUnitRateID(transaction.transactionID, rateID); // For self DM, set the correct participant data with current user's details const displayNameWithSuffix = getDisplayNameOrDefault(currentUserPersonalDetails, '', true, true); const selfDMParticipant: Participant = { accountID: currentUserPersonalDetails.accountID, reportID: selfDMReportID, isPolicyExpenseChat: false, isSelfDM: true, login: currentUserPersonalDetails.login, text: displayNameWithSuffix, displayName: displayNameWithSuffix, policyID: selfDMReport?.policyID, selected: true }; setMoneyRequestParticipants(transaction.transactionID, [selfDMParticipant]); setTransactionReport(transaction.transactionID, {reportID: selfDMReportID}, true); });
App/src/pages/iou/request/step/IOURequestStepParticipants.tsx
Lines 186 to 191 in 5c27729
transactions.forEach((transaction) => { setCustomUnitRateID(transaction.transactionID, rateID); const shouldSetParticipantAutoAssignment = iouType === CONST.IOU.TYPE.CREATE; setMoneyRequestParticipantsFromReport(transaction.transactionID, selfDMReport, shouldSetParticipantAutoAssignment ? isActivePolicyRequest : false); setTransactionReport(transaction.transactionID, {reportID: selfDMReportID}, true); }); What alternative solutions did you explore? (Optional)
None
- addedExternalAdded to denote the issue can be worked on by a contributorAdded to denote the issue can be worked on by a contributorHelp WantedApply this label when an issue is open to proposals by contributorsApply this label when an issue is open to proposals by contributorsand removedDailyKSv2KSv2
on Oct 13, 2025 - changed the title
[-]No checkmark displayed for selected recipient in choose recipient page[/-][+][$250] No checkmark displayed for selected recipient in choose recipient page[/+]on Oct 13, 2025 Job added to Upwork: https://www.upwork.com/jobs/~021977700485105674551
132 remaining items
Payment Summary
Contributor: @dmkt9 paid $250 via Upwork
Contributor+: @truph01 due $250 via NewDot (I canceled the Upwork contract)@dmkt9 can you please accept the job below? Please reply here and tag me once you have.
https://www.upwork.com/jobs/~022059435814641907058- removedWeeklyKSv2KSv2BugSomething is broken. Auto assigns a BugZero manager.Something is broken. Auto assigns a BugZero manager.
on May 27, 2026 - changed the title
[-][$250] No checkmark displayed for selected recipient in choose recipient page[/-][+][Due for Payment 2026-05-26][$250] No checkmark displayed for selected recipient in choose recipient page[/+]on May 27, 2026 - addedAwaiting PaymentAuto-added when associated PR is deployed to productionAuto-added when associated PR is deployed to production
on May 27, 2026 Current assignee @mallenexpensify is eligible for the Awaiting Payment assigner, not assigning anyone new.
@mallenexpensify Thanks. I've accepted the offer.
@dmkt9 paid, summary updated above. Thx.
$250 approved for @truph01
Metadata
Metadata
Labels
Type
Projects
- StatusShow more project fieldsDone
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 9.2.27-4
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @JS00001
Slack conversation (hyperlinked to channel name): #Expensify Bugs
Action Performed:
Expected Result:
Checkmark displayed for the recipient selected in step 4
Actual Result:
No checkmark displayed for the selected recipient
Workaround:
Unknown
Platforms:
Select the officially supported platforms where the issue was reproduced:
Platforms Tested:
On which of our officially supported platforms was this issue tested:Screenshots/Videos
Add any screenshot/video evidence
Screen.Recording.2025-10-08.at.11.46.44.AM.mov
Recording.1743.mp4
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @Issue Owner
Current Issue Owner: @mallenexpensify