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
Report field - Clear button on search does not clear input when keyboard is opened #103918
Version Number: 9.5.8-0 Reproducible in staging?: Yes Reproducible in production?: No 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: iPhone 17 Pro Max / iOS 27.0.1 App Component: Money Requests
Action Performed:
Precondition:
Enable Report fields.
Create a list report field with at least 8 list values.
Launch Expensify app.
Go to workspace chat.
Create an empty report.
Open the report.
Tap on the list report field.
Tap on the search field.
Type anything on the search field.
While keyboard is opened, tap clear button on search field.
Expected Result:
Clear button on search field will clear the input when keyboard is opened.
Actual Result:
Clear button on search field closes the keyboard and does not clear input when keyboard is opened.
👋 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.
Root cause: On an empty report, a list field now opens an inline dropdown instead of a separate page. That dropdown sits inside a ScrollView that doesn't set keyboardShouldPersistTaps (MoneyRequestReportEmptyStateView.tsx:31). With the keyboard open, the first tap on the clear button only dismisses the keyboard. The button never gets the press.
Recommended resolution: Revert the PR on staging. It is the shared cause of four other open blockers:
If the team rolls forward instead, this bug needs one line: add keyboardShouldPersistTaps="handled" to that ScrollView. Reports with expenses already do this (MoneyRequestReportUnifiedList.tsx:399). That fix doesn't help the other four blockers.
Investigation details
Code is cited at staging commit 9ffd50a1.
Production: tapping a list report field opened the editor as a full page. The search input was never inside the report's ScrollView.
Staging: the PR opens an inline dropdown that holds the same list. The list shows a search input once it has 8 or more values, which matches the issue's precondition (ReportFieldInlineInput.tsx:205-245). The dropdown is a React Native Modal (FilterPopupButton.tsx:139-164).
React Native routes touches by the React tree, so the dropdown's contents still count as children of the empty-state ScrollView. That ScrollView uses the default keyboardShouldPersistTaps="never". With the keyboard up, a tap on anything that isn't a text input blurs the input and is consumed.
The selection list sets keyboardShouldPersistTaps="always" only on its own list (BaseSelectionListWithSections.tsx:378). The search input renders outside that list (L349), so the clear button gets no protection.
Only empty reports are affected, because reports with expenses use the unified list, which already sets "handled".
Ruled out: no other PR in the current deploy checklist touched TextInput, the clear button, the base selection list, or the ScrollView wrapper.
Not verified: this is a native-only bug, so it wasn't reproduced on web. Nothing in the cause is iOS-specific, so Android is probably affected too. Tapping a list option while the keyboard is open probably also takes two taps.
Severity: on its own this is minor. A second tap or backspace works around it. It should stay a blocker because it shares a cause with the four blockers above.
Next Steps: Reply with @MelvinBot <your feedback> to refine this analysis.
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/d600dc51083ca693eb3977bee8e070a30907aefd8155f52a8ac9fa1e740dea3c
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
melvin-bot commentedon Oct 13, 2026
💬 A slack conversation has been started in #expensify-open-source
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:
MelvinBot commentedon Oct 13, 2026
Deploy Blocker Analysis
Causing PR: Restore: Show up to three report fields per row and edit them inline (high confidence). The auto-assignment is correct.
Root cause: On an empty report, a list field now opens an inline dropdown instead of a separate page. That dropdown sits inside a
ScrollViewthat doesn't setkeyboardShouldPersistTaps(MoneyRequestReportEmptyStateView.tsx:31). With the keyboard open, the first tap on the clear button only dismisses the keyboard. The button never gets the press.Recommended resolution: Revert the PR on staging. It is the shared cause of four other open blockers:
If the team rolls forward instead, this bug needs one line: add
keyboardShouldPersistTaps="handled"to thatScrollView. Reports with expenses already do this (MoneyRequestReportUnifiedList.tsx:399). That fix doesn't help the other four blockers.Investigation details
Code is cited at staging commit
9ffd50a1.ScrollView.Modal(FilterPopupButton.tsx:139-164).ScrollView. ThatScrollViewuses the defaultkeyboardShouldPersistTaps="never". With the keyboard up, a tap on anything that isn't a text input blurs the input and is consumed.keyboardShouldPersistTaps="always"only on its own list (BaseSelectionListWithSections.tsx:378). The search input renders outside that list (L349), so the clear button gets no protection."handled".Ruled out: no other PR in the current deploy checklist touched
TextInput, the clear button, the base selection list, or theScrollViewwrapper.Not verified: this is a native-only bug, so it wasn't reproduced on web. Nothing in the cause is iOS-specific, so Android is probably affected too. Tapping a list option while the keyboard is open probably also takes two taps.
Severity: on its own this is minor. A second tap or backspace works around it. It should stay a blocker because it shares a cause with the four blockers above.
Next Steps: Reply with
@MelvinBot <your feedback>to refine this analysis.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.
m-natarajan commentedon Oct 13, 2026
Not repro, iPhone 17 Pro / 27.0.1
103918-iOS.mp4