Fix agent avatar disappearing from Share QR when offline#96112
Conversation
Co-authored-by: Nicolás Bonet <NicolasBonet@users.noreply.github.com>
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
The only failing check is PR Author Checklist / checklist, and it's not a code issue — so there's no fix for me to push. It fails because the author checklist is only 1 of 38 items checked:
These boxes require a human co-author to confirm they actually tested the change (all-platform testing, offline verification, screenshots/videos, console-error checks, etc.), so I won't tick them on anyone's behalf. Once you complete the testing and check the boxes in the PR description, this check will pass. Everything else is green or still running — the remaining |
|
🚧 NicolasBonet has triggered a test Expensify/App build. You can view the workflow run here. |
This comment has been minimized.
This comment has been minimized.
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-07-15.at.16.26.47.movAndroid: mWeb ChromeScreen.Recording.2026-07-15.at.16.29.50.moviOS: HybridAppScreen.Recording.2026-07-15.at.16.23.32.moviOS: mWeb SafariScreen.Recording.2026-07-15.at.16.22.23.movMacOS: Chrome / SafariScreen.Recording.2026-07-15.at.16.20.04.mov |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 inimaga has triggered a test Expensify/App build. You can view the workflow run here. |
|
🧪🧪 Use the links below to test this adhoc build on Android, iOS, and Web. Happy testing! 🧪🧪
|
Explanation of Change
On the Share Code page, the QR logo for the current user's profile was always resolved to a remote CDN URL via
getAvatarURL. For agent ("bot") avatars that URL points at a CloudFront PNG, which the QR library loads as a network image. When the device goes offline the fetch fails, so the agent avatar disappears from the center of the QR code (the reported bug).Every catalog-backed avatar (agent avatars and default user avatars) already ships a bundled local SVG. This change routes those avatars through the QR component's
svgLogoprop — which renders the bundled SVG with no network request — instead of the URLlogoprop. Only genuinely user-uploaded avatars (which have no local asset) still fall back to the CDN URL, so online behavior is unchanged while the offline case now keeps rendering the selected avatar.The workspace/report logo path is untouched.
Fixed Issues
$ #96099
PROPOSAL: #96099 (comment)
Tests
Offline tests
QA Steps
Same as tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
MacOS: Chrome / Safari
CleanShot.2026-07-14.at.18.29.12.mp4