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 2026-10-16] [$175] Expense - Device settings page when location is disabled in device. #102961
Version Number: V9..5.2-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:#102013 Email or phone of affected tester (no customers):dreamnitethedragon+vegst@gmail.com Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Redmi note 10s android 13 App Component: User Settings
Action Performed:
Launch app
Turn off location services for the whole device
Go to FAB > Track distance > GPS and tap Start.
Verify a "Location access required" modal appears with Open settings and Dismiss buttons
Tap Dismiss and verify the modal closes and no trip starts
Tap Start again, tap Open settings, and verify the device location settings open
Expected Result:
Device location settings page must be opened when location is disabled in device.
Actual Result:
Device settings page is opened instead of device location settings page when location is disabled in device.
👋 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.
Verdict: not a regression from this release. Don't revert. Demote it once QA confirms it reproduces on production.
Root cause: On Android, "Open settings" sends the generic android.settings.SETTINGS intent. That intent opens the top-level device settings, not the location settings (openSettings/index.android.ts:3-6).
Recommended fix (fix forward): In openSettings/index.android.ts, change the intent to 'android.settings.LOCATION_SOURCE_SETTINGS'. Optionally, fall back to Linking.openSettings() if sendIntent rejects.
Investigation details
Flow:checkSettingsAndPermissions calls hasServicesEnabledAsync(). If location services are off, it shows the disabled-services modal (GPSButtons/index.tsx:168-179). Its confirm button runs openSettings (GPSButtons/index.tsx:85-96).
Likely already in production: the GPS tab has no beta gate in DistanceRequestStartPage.tsx, and this code has shipped since January. The issue says "N/A - new feature", so QA should confirm it on the production Android build before anyone removes DeployBlockerCash.
iOS matches: iOS also opens general settings, not Location Services (openSettings/index.ios.ts:4-8). That suggests opening general settings was intended. Whether iOS should change too is a product decision.
Not affected: the permission-denied modal calls Linking.openSettings(), which opens the app's own settings page. That is correct (GPSButtons/index.tsx:98-116).
Owners: the auto-assignment is based on the wrong PR. GCyganek (author of PR Add location services check - GPS trip #79488) and its reviewers dukenv0307 and AndrewGable are better owners.
Testing: I didn't run a test. The bug is in an Android-only native intent, and web can't reproduce it.
Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.
changed the title [-][$175] Expense - Device settings page when location is disabled in device.[/-][+][Due for payment 2026-10-16] [$175] Expense - Device settings page when location is disabled in device.[/+]on Oct 9, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.6-6 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-10-16. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ 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]
Activity
applause-bot commentedon Oct 5, 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/f967582113468ff50c42204dc9c1e096cbf147f051b232bcfbf1698f3c2622ff
melvin-bot commentedon Oct 5, 2026
@roryabraham recently merged #102013, but they are OOO right now, so I'll auto-assign someone else.
melvin-bot commentedon Oct 5, 2026
Triggered auto assignment to @NicolasBonet (
DeployBlockerCash), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.github-actions commentedon Oct 5, 2026
👋 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:
melvin-bot commentedon Oct 5, 2026
@roryabraham @ZhenjaHorbach you have been assigned to this deploy blocker because you reviewed the offending PR: #102013
melvin-bot commentedon Oct 5, 2026
💬 A slack conversation has been started in #expensify-open-source
MelvinBot commentedon Oct 5, 2026
Deploy Blocker Investigation
Verdict: not a regression from this release. Don't revert. Demote it once QA confirms it reproduces on production.
Root cause: On Android, "Open settings" sends the generic
android.settings.SETTINGSintent. That intent opens the top-level device settings, not the location settings (openSettings/index.android.ts:3-6).Causing PR: Add location services check - GPS trip, merged 2026-01-20. That PR added this file, and the file hasn't changed since. [Batch 6] Migrate GPS trip ConfirmModal usages to useConfirmModal did not cause this. It only moved the modal to
useConfirmModal()and still passes the sameopenSettingsfunction.Recommended fix (fix forward): In
openSettings/index.android.ts, change the intent to'android.settings.LOCATION_SOURCE_SETTINGS'. Optionally, fall back toLinking.openSettings()ifsendIntentrejects.Investigation details
checkSettingsAndPermissionscallshasServicesEnabledAsync(). If location services are off, it shows the disabled-services modal (GPSButtons/index.tsx:168-179). Its confirm button runsopenSettings(GPSButtons/index.tsx:85-96).openSettingsForLocationServices) calledopenSettings(). The new modal passesopenSettingsdirectly, so the behavior is unchanged. The PR didn't touch theopenSettings/folder.DistanceRequestStartPage.tsx, and this code has shipped since January. The issue says "N/A - new feature", so QA should confirm it on the production Android build before anyone removesDeployBlockerCash.Linking.openSettings(), which opens the app's own settings page. That is correct (GPSButtons/index.tsx:98-116).GCyganek(author of PR Add location services check - GPS trip #79488) and its reviewersdukenv0307andAndrewGableare better owners.Next Steps: Reply with
@MelvinBot implement thisto create a draft PR, or@MelvinBot <your feedback>to refine this analysis.view run
25 remaining items
[-][$175] Expense - Device settings page when location is disabled in device.[/-][+][Due for payment 2026-10-16] [$175] Expense - Device settings page when location is disabled in device.[/+]melvin-bot commentedon Oct 9, 2026
@ZhenjaHorbach
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.6-6 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-10-16. 🎊
The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the Contributor+ 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]
melvin-bot commentedon Oct 12, 2026
@ZhenjaHorbach Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!
melvin-bot commentedon Oct 14, 2026
@ZhenjaHorbach Huh... This is 4 days overdue. Who can take care of this?
melvin-bot commentedon Oct 15, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)melvin-bot commentedon Oct 15, 2026
Payment Summary
Resolving PRs:
Open location settings from the GPS location services modal on Android #103197
Reviewer: @ZhenjaHorbach owed $175 via NewDot
BugZero Checklist (@mallenexpensify)
mallenexpensify commentedon Oct 17, 2026
Payment Summary
Contributor+: @ZhenjaHorbach due $175 via NewDot
@ZhenjaHorbach plz address mentions of 'deploy blocker' so I don't have to research (cuz I pay 100+ issues a week). Thx