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

Closed

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): 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: 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: @mallenexpensify

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. 22 remaining items

  10. melvin-bot commented on Nov 1, 2026

    @melvin-bot

    Triggered auto assignment to @mallenexpensify (Awaiting Payment)

  11. melvin-bot commented on Nov 1, 2026

    @melvin-bot

    Payment Summary

    Resolving PRs:

    BugZero Checklist (@mallenexpensify)

    • I have confirmed assignees, roles, and Upwork contracts look correct
    • I have paid out Upwork contracts / manual NewDot requests
    • [BugZero Assignee] I have created a GH issue for creating/updating the regression test once above steps have been agreed upon
  12. melvin-bot commented on Nov 5, 2026

    @melvin-bot

    @mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

  13. melvin-bot commented on Nov 5, 2026

    @melvin-bot

    @mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

  14. melvin-bot commented on Nov 5, 2026

    @melvin-bot

    @mallenexpensify Uh oh! This issue is overdue by 2 days. Don't forget to update your issues!

  15. mallenexpensify commented on Nov 5, 2026

    @mallenexpensify
    Contributor

    @Krishna2323 plz complete the Contributor+ checklist and tag me in a post once you have. Thx

    Causing PR (high confidence): #103810. It added the Describe input below the New rule templates. Before this PR, that page had no text input.

    @Krishna2323 this issue and/or PR mention a deploy blocker or a regression. Before the payment date, post one of the three options in step 20 of the C+ doc: it was a regression, it was not, or you did not review the offending PR. If you don't post, the default is to reduce payment.

    I'm assuming this isn't due payment.

  16. Krishna2323 commented on Nov 10, 2026

    @Krishna2323
    Contributor

    @mallenexpensify This was a regression, so no payment is needed. I'll handle the checklist in the original PR issue. Sorry for not mentioning that earlier!

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

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionDailyKSv2EngineeringImprovementItem broken or needs improvement.

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions