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
Android - Expense - App scrolls down to mid report view when text report field is focused #103909
Version Number: 9.5.8-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:#102142 Email or phone of affected tester (no customers):jsoidjndoiniodnsjojd@gmail.com Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Samsung Galaxy S25 FE / Android 16 App Component: Money Requests
Action Performed:
Precondition:
Enable Report fields.
Create a text report field.
Launch Expensify app.
Go to workspace chat.
Create an expense.
Open the report.
Tap on the text report field.
Expected Result:
App will not scroll down when text report field is focused.
Actual Result:
App scrolls down to mid report view when text report field is focused.
On iOS app, it scrolls down then scrolls back to text report field when text report field is focused.
👋 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.
Recommendation: roll forward. Revert if no fix lands before the deploy. In MoneyReportView, render report fields on one-expense reports as rows that open the editor page again, as they were before the PR. Keep inline editing only in the multi-expense table view. A revert should be clean as a fallback, but it would be the second revert of this feature.
The PR added MoneyRequestViewReportFields to MoneyReportView.tsx:162-174. This replaced the rows that opened the editor page.
Each field is a ReportFieldInlineInput, a new file in this PR. For text fields, it renders a real TextInput.
Scroll mechanism (from code analysis, not confirmed on a device)
One-expense reports open scrolled to the top. In that mode, useReportActionsScroll.ts:210-221 keeps autoscrollToBottomThreshold at 0.
On a short report, FlashList treats the view as near the bottom, so it scrolls to the bottom on every layout change.
The Android keyboard resizes the window, which triggers the scroll. On iOS, the native scroll-to-focused-input then brings the field back. That matches the "scrolls down then back" report.
This never happened before because the composer sits outside the list. Report fields are the first input most users focus inside it.
Proper fix: move the fields out of the inverted list, or stop FlashList autoscroll when the keyboard resizes the window. That work is tracked in the open follow-up issue.
I did not test on a device. The bug only happens in the native apps, and this run could only test web.
Suggested AI code review rule
The same bug has now shipped twice, and a grep can catch it.
Rule:UI-6: Don't put keyboard-opening inputs inside the inverted report feed.
Condition: flag a TextInput, DatePicker, FormProvider, or other keyboard-opening control rendered by a report action in ReportActionsList. This covers src/components/ReportActionItem/**, src/pages/inbox/report/*ContentCreated*, and the components they render.
Fix: edit the value on a separate page, in the right-hand panel, or in a popover.
Activity
applause-bot commentedon Oct 13, 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/a172e61aea2dc29b7d7d0a5a4d7e23ca3aea5bebf16aca4cf71b4003d0cf2ae5
melvin-bot commentedon Oct 13, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #102142
melvin-bot commentedon Oct 13, 2026
@AndrewGable you have been assigned to this deploy blocker because you reviewed the offending PR: #102142
github-actions commentedon Oct 13, 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 13, 2026
💬 A slack conversation has been started in #expensify-open-source
MelvinBot commentedon Oct 13, 2026
Deploy Blocker Investigation
Causing PR (high confidence): Restore: Show up to three report fields per row and edit them inline, merged by
AndrewGableon 2026-10-12.Recommendation: roll forward. Revert if no fix lands before the deploy. In
MoneyReportView, render report fields on one-expense reports as rows that open the editor page again, as they were before the PR. Keep inline editing only in the multi-expense table view. A revert should be clean as a fallback, but it would be the second revert of this feature.Why: the PR made report fields on one-expense reports inline
TextInputs inside the inverted report feed. When the Android keyboard opens, the window shrinks and the list scrolls away from the field. This bug was already reported against the original PR in Android - Expense - Report auto scrolls to bottom after opening report field. The restore PR knowingly deferred it to Android - Report auto scrolls to bottom when the keyboard opens for an input inside the report, which is still open.Investigation details
Permalinks are at App
0714dac08359d32143b16eabeb16629944717845.How the fields end up in the inverted list
shouldDisplayReportTableViewreturns false for one-expense reports. As a result,ReportActions.tsxrendersReportActionsList.ReportActionsListis anInvertedFlashList.MoneyReportContentCreated, which rendersMoneyReportView.MoneyRequestViewReportFieldstoMoneyReportView.tsx:162-174. This replaced the rows that opened the editor page.ReportFieldInlineInput, a new file in this PR. For text fields, it renders a realTextInput.Scroll mechanism (from code analysis, not confirmed on a device)
useReportActionsScroll.ts:210-221keepsautoscrollToBottomThresholdat0.Other checklist PRs ruled out
Proper fix: move the fields out of the inverted list, or stop FlashList autoscroll when the keyboard resizes the window. That work is tracked in the open follow-up issue.
I did not test on a device. The bug only happens in the native apps, and this run could only test web.
Suggested AI code review rule
The same bug has now shipped twice, and a grep can catch it.
UI-6: Don't put keyboard-opening inputs inside the inverted report feed.TextInput,DatePicker,FormProvider, or other keyboard-opening control rendered by a report action inReportActionsList. This coverssrc/components/ReportActionItem/**,src/pages/inbox/report/*ContentCreated*, and the components they render.grep -rln "TextInput\|DatePicker\|FormProvider" src/components/ReportActionItem src/pages/inbox/reportApp/.claude/skills/app-coding-standards/rules/, with an index entry under UI inSKILL.md.view run
melvin-bot commentedon Oct 13, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
melvin-bot commentedon Oct 13, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
melvin-bot commentedon Oct 13, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
melvin-bot commentedon Oct 13, 2026
If you are the assigned CME please investigate whether the linked PR caused a regression and leave a comment with the results.
If a regression has occurred and you are the assigned CM follow the instructions here.
If this regression could have been avoided please consider also proposing a recommendation to the PR checklist so that we can avoid it in the future.
m-natarajan commentedon Oct 14, 2026
Not repro, Xiaomi Redmi Note 10 / Android 12, App 9.5.8-5
Screenrecorder-2026-10-14-12-39-19-18.mp4