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-28] Android - Rules - Describe modal partially overlaps with device status bar #103859
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:#99624 Email or phone of affected tester (no customers):[email protected] Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Samsung Galaxy S25 FE / Android 16 App Component: Workspace Settings
Action Performed:
Precondition:
Create a Collect workspace.
Enable Rules.
Launch Expensify app.
Go to workspace settings > Rules.
Tap Add rule.
Tap Restrict card spend.
Tap Describe.
Expected Result:
Describe modal will not overlap with device status bar.
Actual Result:
Describe modal partially overlaps with device status bar,
👋 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.
Causing PR:AI-assisted rule creation (high confidence). It added the Describe modal and its fixed 312px input height.
Root Cause: On phones, the Describe modal is a bottom-docked sheet that rises above the keyboard. Its prompt input has a fixed height of 312px, and nothing in the sheet can shrink or scroll. On a typical Android phone with the keyboard open, the sheet is taller than the space above the keyboard. Because the modal is statusBarTranslucent, its top draws under the status bar.
Recommended Fix: Fix forward. Use the 312px height only on the wide CONFIRM layout. On narrow screens, use a short input (about 115px, the height before commit 6a76f33) or a maxHeight that can shrink. Revert the PR only if a fix can't merge before the deploy.
styles/index.ts:6205-6207: that style is a fixed height (312px). The PR changed it from 115px to 312px to match a desktop design.
BaseModal.tsx:63: statusBarTranslucent defaults to true, so on Android the sheet draws under the status bar instead of being clipped. BaseModal's top safe-area handling only adds a margin, which can't shrink fixed-height content.
Why other screens are fine: The Restrict card spend editor is a normal ScreenWrapper page. Other bottom-docked modals, such as ConfirmModal, have short content. The similar agent rule prompt input (AgentRules/useAgentPromptInputStyles.ts) uses flex1 + maxHeight, so it can shrink.
Revert vs. fix forward: The PR changes 30 files (new API command, Onyx keys, translations, four rule editors). The fix touches one component and one style. The Describe button isn't behind a beta, so all admins creating a new rule can reach it.
Web: This bug can't be reproduced as reported on web. Web has no status bar, and mobile browsers shrink the page when the keyboard opens. A rough check: a narrow, short (about 450-500px tall) desktop window should push the sheet's top past the window edge with the current code. Final confirmation needs an Android device with the keyboard open. Sheet height vs. available space is estimated from the layout, not measured on a device.
Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.
On small screens, the Describe input now uses variables.textInputAutoGrowMaxHeight (115px), the height before AI-assisted rule creation. Wide screens keep the 312px input.
Typecheck, lint, spell check, the React Compiler check, and related Jest tests passed. I couldn't run a browser check because the test session failed to load. Please confirm the fix on Android with the keyboard open.
changed the title [-]Android - Rules - Describe modal partially overlaps with device status bar[/-][+][Due for payment 2026-10-28] Android - Rules - Describe modal partially overlaps with device status bar[/+]on Oct 21, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.15-3 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-28. 🎊
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 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/fd69b936055a7fa37be195076643036fd164ff41c3c5dde298114b8b8fbe4486
melvin-bot commentedon Oct 13, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #99624
melvin-bot commentedon Oct 13, 2026
@luacmartins @JS00001 @Krishna2323 you have been assigned to this deploy blocker because you reviewed the offending PR: #99624
melvin-bot commentedon Oct 13, 2026
@rushatgabhane you have been assigned to this deploy blocker because you authored the offending PR: #99624
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: AI-assisted rule creation (high confidence). It added the Describe modal and its fixed 312px input height.
Root Cause: On phones, the Describe modal is a bottom-docked sheet that rises above the keyboard. Its prompt input has a fixed height of 312px, and nothing in the sheet can shrink or scroll. On a typical Android phone with the keyboard open, the sheet is taller than the space above the keyboard. Because the modal is
statusBarTranslucent, its top draws under the status bar.Recommended Fix: Fix forward. Use the 312px height only on the wide
CONFIRMlayout. On narrow screens, use a short input (about 115px, the height before commit 6a76f33) or amaxHeightthat can shrink. Revert the PR only if a fix can't merge before the deploy.Investigation details
Evidence chain (merge commit
84d85130):DescribeRuleModal.tsx:138: narrow screens useBOTTOM_DOCKED. Line 140 setsavoidKeyboard.DescribeRuleModal.tsx:108: the input is focused automatically after the open animation, so the keyboard always opens.DescribeRuleModal.tsx:152setsshouldUseScrollView={false}. Line 158 wraps the input instyles.describeRulePromptInput.styles/index.ts:6205-6207: that style is a fixedheight(312px). The PR changed it from 115px to 312px to match a desktop design.BaseModal.tsx:63:statusBarTranslucentdefaults totrue, so on Android the sheet draws under the status bar instead of being clipped.BaseModal's top safe-area handling only adds a margin, which can't shrink fixed-height content.Why other screens are fine: The Restrict card spend editor is a normal
ScreenWrapperpage. Other bottom-docked modals, such asConfirmModal, have short content. The similar agent rule prompt input (AgentRules/useAgentPromptInputStyles.ts) usesflex1+maxHeight, so it can shrink.Revert vs. fix forward: The PR changes 30 files (new API command, Onyx keys, translations, four rule editors). The fix touches one component and one style. The Describe button isn't behind a beta, so all admins creating a new rule can reach it.
Web: This bug can't be reproduced as reported on web. Web has no status bar, and mobile browsers shrink the page when the keyboard opens. A rough check: a narrow, short (about 450-500px tall) desktop window should push the sheet's top past the window edge with the current code. Final confirmation needs an Android device with the keyboard open. Sheet height vs. available space is estimated from the layout, not measured on a device.
Next Steps: Reply with
@MelvinBot implement thisto create a draft PR, or@MelvinBot <your feedback>to refine this analysis.view run
rushatgabhane commentedon Oct 13, 2026
@MelvinBot for small screen use different height, the height before this PR
and create a PR
MelvinBot commentedon Oct 13, 2026
🤖 Draft PR created: Use the shorter Describe rule input height on small screens
Please mark it as "Ready for review" or ask me to do that for you when it is ready for review.
On small screens, the Describe input now uses
variables.textInputAutoGrowMaxHeight(115px), the height before AI-assisted rule creation. Wide screens keep the 312px input.Typecheck, lint, spell check, the React Compiler check, and related Jest tests passed. I couldn't run a browser check because the test session failed to load. Please confirm the fix on Android with the keyboard open.
view run · no recording available
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.
kavimuru commentedon Oct 13, 2026
Describe button is not showing with "describerule" disabled.
Screenrecorder-2026-10-13-20-23-58-9.mp4
[-]Android - Rules - Describe modal partially overlaps with device status bar[/-][+][Due for payment 2026-10-28] Android - Rules - Describe modal partially overlaps with device status bar[/+]melvin-bot commentedon Oct 21, 2026
@Krishna2323
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.15-3 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-28. 🎊
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]