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-03-19] Expense - Sluggish animation when RHP closes #85013
Version Number: 9.3.36-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:#82510 Email or phone of affected tester (no customers):sdoijsdniojsodsjodsjis@gmail.com Issue reported by: Applause Internal Team Bug source: Exploratory - Significant User Experience Deterioration Device used: Mac 26.2 / Chrome App Component: Money Requests
Action Performed:
Go to staging.new.expensify.com
Go to workspace chat.
Create two expenses.
Open the report.
Open any expense.
Click Amount.
Click outside the RHP.
Repeat Step 6 and 7.
Expected Result:
RHP will close smoothly.
Actual Result:
RHP closes sluggishly.
This issue happens with other RHP such as report details RHP.
👋 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.
Classification: Frontend bug Causing PR: #82510 - "fix: Screen Reader: Many Pages: There is no dialog role and title announced" by @TaduJR (High confidence) Related Issues: #84958, #84966, #85007 (all caused by same PR)
Recommendation: REVERT (already in progress via #84967)
The revert PR is already open and addresses multiple deploy blockers caused by the same root cause. PR #82510 introduced DialogLabelContext and focus management hooks that interfere with RHP animations.
Labels: This issue should KEEP the DeployBlockerCash label as it is a frontend (App) bug that blocks the mobile deploy. A revert PR (#84967) is already open to address this and related issues.
Detailed Analysis
Evidence
PR #82510 was merged on 2026-03-11 (position 75 in the StagingDeployCash checklist) and introduced accessibility improvements for screen readers. The PR added:
DialogLabelContext with state management
useDialogTitleFocus hook that listens to navigation transitionEnd events
Multiple useEffect hooks in the Header component
Focus management that runs on every RHP interaction
The issue reports sluggish RHP closing animation, reproducible in staging but NOT in production. This timing aligns perfectly with PR #82510 being on staging but not production.
Verification
Files modified by PR #82510 that are directly related to RHP rendering:
/home/runner/_work/App/App/src/hooks/useDialogTitleFocus/index.ts - New hook that listens to transitionEnd events
/home/runner/_work/App/App/src/components/DialogLabelContext.tsx - New context with state updates
/home/runner/_work/App/App/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx - Wrapped Stack.Navigator with new providers
Root Cause
The sluggish animation is caused by performance overhead from:
DialogLabelContext state updates: The context creates new objects on every render (actions and value objects are not memoized), causing unnecessary re-renders throughout the RHP component tree.
Focus management interference: The useDialogTitleFocus hook listens to the transitionEnd navigation event. Even when closing the RHP, this event handler is active and attempts to focus the title element, potentially interfering with the closing animation.
Multiple useEffect hooks: The Header component now runs 3 useEffect hooks on every RHP interaction (label registration, focus management, and cleanup), adding computational overhead during transitions.
The performance impact manifests as sluggish animations because these operations occur during the critical animation frame period when the RHP is transitioning closed.
Revert Status
A revert PR (#84967) has already been created by @amyevans and is open for review. It addresses this issue along with three other deploy blockers (#84958, #84966, #85007) caused by the same PR.
Note: This issue currently has both DeployBlockerCash and DeployBlocker labels. Since this is a Frontend bug (caused by App PR #82510), it should only have DeployBlockerCash to block the App deploy. However, both labels were added by an internal employee (@mitarachim), so per protocol I am not removing any labels. An internal team member should review and remove the DeployBlocker label if appropriate.
changed the title [-]Expense - Sluggish animation when RHP closes[/-][+][Due for payment 2026-03-19] Expense - Sluggish animation when RHP closes[/+]on Mar 12, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.3.36-10 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:
@amyevans The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero 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]
Activity
melvin-bot commentedon Mar 12, 2026
You have been assigned to this deploy blocker because you recently merged this PR: #82510
melvin-bot commentedon Mar 12, 2026
💬 A slack conversation has been started in #expensify-open-source
github-actions commentedon Mar 12, 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:
OSBotify commentedon Mar 12, 2026
Investigation Summary
Classification: Frontend bug
Causing PR: #82510 - "fix: Screen Reader: Many Pages: There is no dialog role and title announced" by @TaduJR (High confidence)
Related Issues: #84958, #84966, #85007 (all caused by same PR)
Recommendation: REVERT (already in progress via #84967)
The revert PR is already open and addresses multiple deploy blockers caused by the same root cause. PR #82510 introduced DialogLabelContext and focus management hooks that interfere with RHP animations.
Labels: This issue should KEEP the
DeployBlockerCashlabel as it is a frontend (App) bug that blocks the mobile deploy. A revert PR (#84967) is already open to address this and related issues.Detailed Analysis
Evidence
PR #82510 was merged on 2026-03-11 (position 75 in the StagingDeployCash checklist) and introduced accessibility improvements for screen readers. The PR added:
The issue reports sluggish RHP closing animation, reproducible in staging but NOT in production. This timing aligns perfectly with PR #82510 being on staging but not production.
Verification
Files modified by PR #82510 that are directly related to RHP rendering:
/home/runner/_work/App/App/src/components/Header.tsx- Added focus management hooks/home/runner/_work/App/App/src/hooks/useDialogTitleFocus/index.ts- New hook that listens to transitionEnd events/home/runner/_work/App/App/src/components/DialogLabelContext.tsx- New context with state updates/home/runner/_work/App/App/src/libs/Navigation/AppNavigator/Navigators/RightModalNavigator.tsx- Wrapped Stack.Navigator with new providersRoot Cause
The sluggish animation is caused by performance overhead from:
DialogLabelContext state updates: The context creates new objects on every render (actions and value objects are not memoized), causing unnecessary re-renders throughout the RHP component tree.
Focus management interference: The
useDialogTitleFocushook listens to thetransitionEndnavigation event. Even when closing the RHP, this event handler is active and attempts to focus the title element, potentially interfering with the closing animation.Multiple useEffect hooks: The Header component now runs 3 useEffect hooks on every RHP interaction (label registration, focus management, and cleanup), adding computational overhead during transitions.
The performance impact manifests as sluggish animations because these operations occur during the critical animation frame period when the RHP is transitioning closed.
Revert Status
A revert PR (#84967) has already been created by @amyevans and is open for review. It addresses this issue along with three other deploy blockers (#84958, #84966, #85007) caused by the same PR.
OSBotify commentedon Mar 12, 2026
Note: This issue currently has both
DeployBlockerCashandDeployBlockerlabels. Since this is a Frontend bug (caused by App PR #82510), it should only haveDeployBlockerCashto block the App deploy. However, both labels were added by an internal employee (@mitarachim), so per protocol I am not removing any labels. An internal team member should review and remove theDeployBlockerlabel if appropriate.9 remaining items
melvin-bot commentedon Mar 12, 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.
melvin-bot commentedon Mar 12, 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.
melvin-bot commentedon Mar 12, 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.
melvin-bot commentedon Mar 12, 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.
[-]Expense - Sluggish animation when RHP closes[/-][+][Due for payment 2026-03-19] Expense - Sluggish animation when RHP closes[/+]melvin-bot commentedon Mar 12, 2026
Reviewinglabel has been removed, please complete the "BugZero Checklist".melvin-bot commentedon Mar 12, 2026
The solution for this issue has been 🚀 deployed to production 🚀 in version 9.3.36-10 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-03-19. 🎊
melvin-bot commentedon Mar 12, 2026
@amyevans The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed. Please copy/paste the BugZero 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]
melvin-bot commentedon Mar 12, 2026
Triggered auto assignment to @mallenexpensify (
Awaiting Payment)