Filter recent waypoints with missing coordinates to prevent Null Island error#84795
Conversation
Co-authored-by: Abdelrahman Khattab <abzokhattab@users.noreply.github.com>
|
I created this PR from an upstream branch since I don't have push access to your fork. To take ownership of this branch and be able to push updates, run: Then you can close this PR and open a new one from your fork. |
|
The failing check ( Analysis: The failure occurred in the "Configure AWS Credentials" step with a transient DNS resolution error: Evidence: This PR only modifies I'll re-run the failed job. |
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
|
mark the pr as ready @MelvinBot |
|
@MelvinBot remerge from main |
|
Done! PR has been marked as ready for review. |
|
@abzokhattab Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
|
Done! Merged |
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppScreen.Recording.2026-03-13.at.03.25.59.movAndroid: mWeb ChromeScreen.Recording.2026-03-13.at.03.28.26.moviOS: HybridAppScreen.Recording.2026-03-13.at.03.23.17.moviOS: mWeb SafariScreen.Recording.2026-03-13.at.03.30.27.movMacOS: Chrome / SafariScreen.Recording.2026-03-13.at.03.21.10.mov |
|
We did not find an internal engineer to review this PR, trying to assign a random engineer to #82852 as well as to this PR... Please reach out for help on Slack if no one gets assigned! |
|
The failing check Failing test: Error: Root cause: The newly introduced mock file import {PERMISSIONS, RESULTS} from 'react-native-permissions/dist/commonjs/permissions';However, that module only exports Evidence: This PR only modifies Fix needed on import {PERMISSIONS} from 'react-native-permissions/dist/commonjs/permissions';
import {RESULTS} from 'react-native-permissions/dist/commonjs/results';This will affect all PRs that merge from |
|
I don't have permission to rerun GitHub Actions workflows. You can rerun the failed |
|
remerge from main or push an empty commit to retrigger the pipeline @MelvinBot |
Co-authored-by: Abdelrahman Khattab <abzokhattab@users.noreply.github.com>
|
Pushed an empty commit to retrigger the CI pipeline. |
|
The failing check ( Failing test: Why it's unrelated:
No code changes are needed on this PR to address this failure. |
JmillsExpensify
left a comment
There was a problem hiding this comment.
No product review required.
|
remerge from main @MelvinBot |
…dinatesFromRecentWaypoints Co-authored-by: Abdelrahman Khattab <abzokhattab@users.noreply.github.com>
|
Done! Merged |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚧 @chuckdries 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
Waypoints saved while offline may lack
lat/lngvalues (the backend fills them in later). TherecentWaypointsSelectorwas converting thesenull/undefinedcoordinates to0via the nullish coalescing operator (?? 0), creating Null Island coordinates (lat=0, lng=0). When users then selected these waypoints from the recent suggestions list, theisWaypointNullIslandcheck would trigger a "Please select a valid address" error.This change adds a filter to exclude waypoints without valid
lat/lngfrom the recent waypoints list, so they won't appear as selectable options that produce errors.Fixed Issues
$ #82852
PROPOSAL: #82852 (comment)
Tests
Offline tests
QA Steps
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, 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.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
N/A - Logic-only change, no UI modifications
Android: mWeb Chrome
N/A - Logic-only change, no UI modifications
iOS: Native
N/A - Logic-only change, no UI modifications
iOS: mWeb Safari
N/A - Logic-only change, no UI modifications
MacOS: Chrome / Safari
N/A - Logic-only change, no UI modifications