Skip to content

[Due for payment 2026-11-02] Android & iOS - Rules - App does not scroll down to Describe field when field is focused #104648

Open

Description

@applause-bot

If you haven’t already, check out our contributing guidelines for onboarding. To join our Slack channel, fill out this form.


Version Number: 9.5.16-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: #103810
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: iPhone 17 Pro Max / iOS 27.0.1
App Component: Search

Action Performed:

Precondition:

  • Create a Control workspace.
  • Enable Rules.
  • Enable describeRule beta.
  1. Launch Expensify app.
  2. Go to workspace settings > Rules.
  3. Tap Add rule.
  4. Tap on the describe field.

Expected Result:

App will scroll down to Describe field.

Actual Result:

App does not scroll down to Describe field.

Workaround:

Unknown

Platforms:

  • Android: App
  • Android: mWeb Chrome
  • iOS: App
  • iOS: mWeb Safari
  • iOS: mWeb Chrome
  • Windows: Chrome
  • MacOS: Chrome Safari

Screenshots/Videos

Bug7292538_1792613844299.ScreenRecording_10-22-2026_04-14-30_1.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Mita Rachim
Bug ID: 7292538

Issue OwnerCurrent Issue Owner: @Krishna2323

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 21, 2026
  2. melvin-bot commented on Oct 21, 2026

    @melvin-bot

    You have been assigned to this deploy blocker because you recently merged this PR: #103810

  3. applause-bot commented on Oct 21, 2026

    @applause-bot
    Author

    While Applause doesn't embed attachments for this bug, here are the links for quick view:
    https://platform.applause.com/services/links/v1/external/f445d551fab1b68091f99fad29a975fadf61de7f3dba4114e813f102ba76924d

  4. melvin-bot commented on Oct 21, 2026

    @melvin-bot

    @francoisl @Krishna2323 you have been assigned to this deploy blocker because you reviewed the offending PR: #103810

  5. melvin-bot commented on Oct 21, 2026

    @melvin-bot

    @yuwenmemon you have been assigned to this deploy blocker because you authored the offending PR: #103810

  6. melvin-bot commented on Oct 21, 2026

    @melvin-bot

    💬 A slack conversation has been started in #expensify-open-source

  7. github-actions commented on Oct 21, 2026

    @github-actions
    Contributor

    👋 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:

    1. Identify the pull request that introduced this issue and revert it.
    2. Find someone who can quickly fix the issue.
    3. Fix the issue yourself.
  8. MelvinBot commented on Oct 21, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR (high confidence): [Payment due @Krishna2323] Describe a rule from New rule and fall back to an agent rule. It added the Describe input below the New rule templates. Before this PR, that page had no text input.

    Recommendation: Demote and fix forward. Don't revert.

    Fix: Add one line to the Describe InputWrapper in DescribeRuleForm.tsx:306-324:

    onFocus={shouldUseScrollView ? () => formRef.current?.scrollToEnd() : undefined}

    This follows the existing pattern in LimitTypeStep.tsx:81-83. Only the New rule page passes shouldUseScrollView, so DescribeRuleModal is unchanged.

    Root cause details
    • The PR wraps RulesNewPage in DescribeNewRuleForm when the beta is on (RulesNewPage.tsx:168-188, DescribeNewRuleForm.tsx:145-170). The multiline Describe input sits below 4–5 template rows, near the bottom of the screen.
    • When the keyboard opens, ScreenWrapper's KeyboardAvoidingView shrinks the form's plain ScrollView (FormWrapper.tsx:287-297). Nothing then scrolls the input back into view:
      • scrollContextEnabled is off, and ScrollViewWithContext only handles Pickers anyway.
      • Android's built-in scroll-to-focus runs before the container shrinks, so it has no effect.
      • On a multiline input, caret scrolling stays inside the input and doesn't move the parent ScrollView.
    • Web isn't affected because browsers scroll focused elements into view natively.
    • FormWrapper.scrollToEnd waits for the keyboard animation before it scrolls (FormWrapper.tsx:157-162), so it handles the timing correctly.
    • Caveat: On current main, the refusal block from Handle agent rule and impossible answers in the AI rules builder #103952 renders between the input and the submit button. If that block is very tall on a small phone, scrolling to the end could push the input off the top. If so, measure the input's position and use formRef.current?.scrollTo(y) instead.
    • No fix or revert PR exists yet. No other recent commits touched FormWrapper, ScreenWrapper or KeyboardAvoidingView.
    • I didn't test this in the app. The bug only affects native, and this run could only test on web.

    Next Steps: Reply with @MelvinBot implement this to create a draft PR, or @MelvinBot <your feedback> to refine this analysis.


    view run

  9. 5 remaining items

  10. removed
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 22, 2026
  11. removed their assignment
    on Oct 22, 2026
  12. changed the title [-]Android & iOS - Rules - App does not scroll down to Describe field when field is focused[/-] [+][Due for payment 2026-11-02] Android & iOS - Rules - App does not scroll down to Describe field when field is focused[/+] on Oct 26, 2026
  13. melvin-bot commented on Oct 26, 2026

    @melvin-bot

    @Krishna2323

    The solution for this issue has been 🚀 deployed to production 🚀 in version 9.5.20-5 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-11-02. 🎊

    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]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions