diff --git a/src/pages/inbox/report/ReportActionsList.tsx b/src/pages/inbox/report/ReportActionsList.tsx index 800e15775be7..862379d07ed2 100644 --- a/src/pages/inbox/report/ReportActionsList.tsx +++ b/src/pages/inbox/report/ReportActionsList.tsx @@ -441,14 +441,21 @@ function ReportActionsListContent({reportID, onLayout}: ReportActionsListProps) return ; } + // The FIX badge points at the errored child (the just-failed expense), which is the newest action at the + // bottom of the chat — never above the viewport — so it must surface regardless of scroll position, but only + // when it has a resolved, rendered target (actionBadgeTargetIndex >= 0) so pressing the pill scrolls to it + // instead of being a no-op (some RBR sources leave actionTargetReportActionID undefined). Green badges stay a + // "scroll up to your queue" affordance and remain gated to the above-viewport case. + const shouldShowActionBadge = !isProduction && (isActionBadgeAboveViewport || (reportAttributes?.actionBadge === CONST.REPORT.ACTION_BADGE.FIX && actionBadgeTargetIndex >= 0)); + return ( <>