Skip to content

Rules - Rule description modal closes after refreshing page. #103867

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.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: Windows 11 / Chrome
App Component: Workspace Settings

Action Performed:

Prerequisite: User is owner of a "Control" workspace with "Rules" enabled.

  1. Open the staging.new.expensify.com website.
  2. Navigate to "Workspaces" > Workspace > "Rules"
  3. Click on "Flag for review" > "Create flag rule"
  4. Click on "Describe"
  5. Once describe modal appears, refresh the page.
  6. Note that after page is refreshed, modal closes and you return to "Flag for review" RHP.

Expected Result:

Rule description modal should remain displayed afrer page is refreshed.

Actual Result:

Rule description modal is closed after the website is refreshed.

Workaround:

Unknown

Platforms:

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

Screenshots/Videos

Bug7285234_1791890373133.Rule_Descr.mp4

View all open jobs on GitHub

Applause Internal Information
Exported by: Julia Ponikarchuk
Bug ID: 7285234

Activity

  1. added
    DeployBlockerCashThis issue or pull request should block deployment
    BugSomething is broken. Auto assigns a BugZero manager.
    on Oct 13, 2026
  2. applause-bot commented on Oct 13, 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/d2819cb6674ca0800b2594208f2e102fd494276fe2d448d09d996877a3344e37

  3. melvin-bot commented on Oct 13, 2026

    @melvin-bot

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

  4. github-actions commented on Oct 13, 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.
  5. melvin-bot commented on Oct 13, 2026

    @melvin-bot

    @luacmartins @JS00001 @Krishna2323 you have been assigned to this deploy blocker because you reviewed the offending PR: #99624

  6. melvin-bot commented on Oct 13, 2026

    @melvin-bot

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

  7. melvin-bot commented on Oct 13, 2026

    @melvin-bot

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

  8. MelvinBot commented on Oct 13, 2026

    @MelvinBot
    Contributor

    Deploy Blocker Analysis

    Causing PR: AI-assisted rule creation (high confidence). It added the Describe button and modal. This feature is not in production yet.

    Root cause: The Describe modal opens from a local useState flag and has no route. A page refresh resets React state, so only the routed "Flag for review" page comes back.

    Recommendation: demote, don't revert. This is a limitation of how the new feature was built, not a regression. The PR moved from a routed prompt page to a modal on purpose, and design agreed in the PR thread. Other modals in the app with no route behave the same way. Reverting would remove the whole AI rule-creation feature over this.

    Investigation details
    • The open state is local: DescribeRuleButton.tsx:41 (useState(false)). The button sets it to true at line 48.
    • The modal is a plain <Modal isVisible={isVisible}> with no route, and nothing is saved in the URL or Onyx: DescribeRuleModal.tsx:135-143.
    • The button is rendered inside the routed page at FlagForReviewRulePageBase.tsx:225.
    • The PR first used a routed page (RulesNewPromptForm). Commit 7908cfe replaced it with the button and modal after design chose "as a modal."
    • User impact is small. The input uses shouldSaveDraft (DescribeRuleModal.tsx:169), so text the user typed should still be there after they click Describe again. I have not tested this.
    • If product wants the modal to stay open after a refresh, the modal needs its own route. That can be a normal follow-up, not a blocker.
    • No code review rule is proposed. A modal with no route is a common, intended pattern, not a one-off mistake.

    Next Steps: An internal engineer should decide whether to remove DeployBlockerCash. Reply with @MelvinBot <your feedback> to refine this analysis.


    view run

  9. rushatgabhane commented on Oct 13, 2026

    @rushatgabhane
    Member

    not a bug
    this is expected

  10. kavimuru commented on Oct 13, 2026

    @kavimuru
    bandicam.2026-10-13.20-22-52-600.mp4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

BugSomething is broken. Auto assigns a BugZero manager.EngineeringHourlyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions