You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Due for payment 2025-10-15] [$250] Expense - Avatar is not displayed next to the selected attendee #69744
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
None
What alternative solutions did you explore? (Optional)
NA
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.
Please re-state the problem that we are trying to solve in this issue.
Avatar is not displayed next to the selected attendee when a random name (non-existing user) is entered in the attendees field of a transaction.
What is the root cause of that problem?
For random name attendees, there's no reportID and accountID, so the avatar is not displayed due to the conditional rendering in InviteMemberListItem.tsx:
When users enter a random name that doesn't correspond to an existing user, both item.reportID and accountID are undefined, causing the entire ReportActionAvatars component to not render.
What changes do you think we should make in order to solve the problem?
Remove the conditional rendering and always show the ReportActionAvatars component:
This approach leverages the existing fallback mechanism in ReportActionAvatars which already has comprehensive logic for handling cases where no accountID or reportID is provided. The component will automatically display a fallback avatar using the fallbackDisplayName prop.
Important Context: This conditional rendering was initially added in PR #67913 to fix deploy blockers. However, PR #68015 later introduced improved fallback avatar mechanisms, making this condition unnecessary. I have tested all potential regressions mentioned in the original PR #67913 and confirmed that removing this condition does not break any existing functionality. The fallback system now handles all edge cases properly.
Note: We could also review other components for similar conditional rendering issues to ensure consistent avatar display behavior.
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
Random name attendee test: Verify that when a random name (non-existing user) is added as an attendee, a fallback avatar is displayed in the attendee list.
Existing user attendee test: Verify that existing users continue to show their profile avatars correctly.
What alternative solutions did you explore? (Optional)
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.2.26-7 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
@eVoloshchak@heyjennahay The PR fixing this issue has been merged! 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]
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment:
[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.
Link to discussion:
[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 Template
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment: this wasn't implemented initially
[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.
Link to discussion: regression wasn't critical
[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 Template
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!
Activity
melvin-bot commentedon Sep 3, 2025
Triggered auto assignment to @adelekennedy (
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.daledah commentedon Sep 3, 2025
Proposal
Please re-state the problem that we are trying to solve in this issue.
Avatar is not displayed next to the selected attendee.
What is the root cause of that problem?
For random name attendees, there's no
reportIDandaccountID, so the avatar is not displayed hereApp/src/components/SelectionList/InviteMemberListItem.tsx
Line 109 in 83a172d
What changes do you think we should make in order to solve the problem?
Since we already has fallback avatar for nonexistent
accountID, we can expand the condition here:App/src/components/SelectionList/InviteMemberListItem.tsx
Line 109 in 83a172d
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
None
What alternative solutions did you explore? (Optional)
NA
Reminder: Please use plain English, be brief and avoid jargon. Feel free to use images, charts or pseudo-code if necessary. Do not post large multi-line diffs or write walls of text. Do not create PRs unless you have been hired for this job.
ganzz4 commentedon Sep 5, 2025
Proposal
Please re-state the problem that we are trying to solve in this issue.
Avatar is not displayed next to the selected attendee when a random name (non-existing user) is entered in the attendees field of a transaction.
What is the root cause of that problem?
For random name attendees, there's no
reportIDandaccountID, so the avatar is not displayed due to the conditional rendering inInviteMemberListItem.tsx:App/src/components/SelectionList/InviteMemberListItem.tsx
Lines 109 to 123 in db76e19
When users enter a random name that doesn't correspond to an existing user, both
item.reportIDandaccountIDare undefined, causing the entireReportActionAvatarscomponent to not render.What changes do you think we should make in order to solve the problem?
Remove the conditional rendering and always show the
ReportActionAvatarscomponent:App/src/components/SelectionList/InviteMemberListItem.tsx
Lines 109 to 110 in db76e19
This approach leverages the existing fallback mechanism in
ReportActionAvatarswhich already has comprehensive logic for handling cases where noaccountIDorreportIDis provided. The component will automatically display a fallback avatar using thefallbackDisplayNameprop.Important Context: This conditional rendering was initially added in PR #67913 to fix deploy blockers. However, PR #68015 later introduced improved fallback avatar mechanisms, making this condition unnecessary. I have tested all potential regressions mentioned in the original PR #67913 and confirmed that removing this condition does not break any existing functionality. The fallback system now handles all edge cases properly.
Note: We could also review other components for similar conditional rendering issues to ensure consistent avatar display behavior.
What specific scenarios should we cover in automated tests to prevent reintroducing this issue in the future?
Random name attendee test: Verify that when a random name (non-existing user) is added as an attendee, a fallback avatar is displayed in the attendee list.
Existing user attendee test: Verify that existing users continue to show their profile avatars correctly.
What alternative solutions did you explore? (Optional)
Result:
fix.mp4
melvin-bot commentedon Sep 8, 2025
@adelekennedy Eep! 4 days overdue now. Issues have feelings too...
melvin-bot commentedon Sep 12, 2025
Triggered auto assignment to @heyjennahay (
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.32 remaining items
melvin-bot commentedon Oct 8, 2025
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.2.26-7 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 2025-10-15. 🎊
For reference, here are some details about the assignees on this issue:
melvin-bot commentedon Oct 8, 2025
@eVoloshchak @heyjennahay The PR fixing this issue has been merged! 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]
heyjennahay commentedon Oct 15, 2025
BugZero Checklist:
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment:
[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.
Link to discussion:
[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 Template
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue:
Regression Test Proposal
Precondition:
Test:
Do we agree 👍 or 👎
heyjennahay commentedon Oct 30, 2025
Assigning to @eVoloshchak to complete the checklist please
eVoloshchak commentedon Nov 3, 2025
BugZero Checklist:
[Contributor] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake.
Link to comment: this wasn't implemented initially
[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.
Link to discussion: regression wasn't critical
[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 Template
[BugZero Assignee] Create a GH issue for creating/updating the regression test once above steps have been agreed upon.
Link to issue: https://github.com/Expensify/Expensify/issues/564808
Regression Test Proposal
Precondition:
Test:
Do we agree 👍 or 👎
heyjennahay commentedon Nov 4, 2025
Confirming payment summary:
melvin-bot commentedon Nov 28, 2025
This issue has not been updated in over 15 days. @eVoloshchak, @heyjennahay, @blimpich, @daledah eroding to Monthly issue.
P.S. Is everyone reading this sure this is really a near-term priority? Be brave: if you disagree, go ahead and close it out. If someone disagrees, they'll reopen it, and if they don't: one less thing to do!
garrettmknight commentedon Dec 1, 2025
$250 approved for @eVoloshchak
heyjennahay commentedon Jan 5, 2026
Closing this out. Thanks everyone!