diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js
index 764699947a9..2b532b59575 100644
--- a/src/libs/ReportUtils.js
+++ b/src/libs/ReportUtils.js
@@ -2585,6 +2585,14 @@ function getPolicy(policyID) {
 }
 
 /*
+ * @param {Object|null} report
+ * @returns {Boolean}
+ */
+function shouldDisableSettings(report) {
+    return !isPolicyExpenseChat(report) && !isChatRoom(report) && !isChatThread(report);
+}
+
+/**
  * @param {Object|null} report
  * @param {Object|null} policy - the workspace the report is on, null if the user isn't a member of the workspace
  * @returns {Boolean}
@@ -2712,5 +2720,6 @@ export {
     canAccessReport,
     getReportOfflinePendingActionAndErrors,
     getPolicy,
+    shouldDisableSettings,
     shouldDisableRename,
 };
diff --git a/src/pages/ReportDetailsPage.js b/src/pages/ReportDetailsPage.js
index e65307c6322..b8daf12c2ca 100644
--- a/src/pages/ReportDetailsPage.js
+++ b/src/pages/ReportDetailsPage.js
@@ -60,8 +60,8 @@ const defaultProps = {
 function ReportDetailsPage(props) {
     const policy = useMemo(() => props.policies[`${ONYXKEYS.COLLECTION.POLICY}${props.report.policyID}`], [props.policies, props.report.policyID]);
     const isPolicyAdmin = useMemo(() => PolicyUtils.isPolicyAdmin(policy), [policy]);
-    const isPolicyExpenseChat = useMemo(() => ReportUtils.isPolicyExpenseChat(props.report), [props.report]);
-    const isChatRoom = useMemo(() => ReportUtils.isChatRoom(props.report), [props.report]);
+    const shouldDisableSettings = useMemo(() => ReportUtils.shouldDisableSettings(props.report), [props.report]);
+    const shouldUseFullTitle = shouldDisableSettings;
     const isThread = useMemo(() => ReportUtils.isChatThread(props.report), [props.report]);
     const isUserCreatedPolicyRoom = useMemo(() => ReportUtils.isUserCreatedPolicyRoom(props.report), [props.report]);
     const isArchivedRoom = useMemo(() => ReportUtils.isArchivedRoom(props.report), [props.report]);
@@ -99,7 +99,7 @@ function ReportDetailsPage(props) {
             });
         }
 
-        if (isPolicyExpenseChat || isChatRoom || isThread) {
+        if (!shouldDisableSettings) {
             items.push({
                 key: CONST.REPORT_DETAILS_MENU_ITEM.SETTINGS,
                 translationKey: 'common.settings',
@@ -122,7 +122,7 @@ function ReportDetailsPage(props) {
         }
 
         return items;
-    }, [props.report.reportID, participants, isArchivedRoom, isPolicyExpenseChat, isChatRoom, isThread, isUserCreatedPolicyRoom, canLeaveRoom]);
+    }, [props.report.reportID, participants, isArchivedRoom, shouldDisableSettings, isThread, isUserCreatedPolicyRoom, canLeaveRoom]);
 
     const displayNamesWithTooltips = useMemo(() => {
         const hasMultipleParticipants = participants.length > 1;
@@ -155,7 +155,7 @@ function ReportDetailsPage(props) {
                                     tooltipEnabled
                                     numberOfLines={1}
                                     textStyles={[styles.textHeadline, styles.textAlignCenter, styles.pre]}
-                                    shouldUseFullTitle={isChatRoom || isPolicyExpenseChat || isThread}
+                                    shouldUseFullTitle={shouldUseFullTitle}
                                 />
                             </View>
                             {isPolicyAdmin ? (
diff --git a/src/pages/settings/Report/NotificationPreferencePage.js b/src/pages/settings/Report/NotificationPreferencePage.js
index 915a32180ad..a32245b1051 100644
--- a/src/pages/settings/Report/NotificationPreferencePage.js
+++ b/src/pages/settings/Report/NotificationPreferencePage.js
@@ -8,9 +8,11 @@ import OptionsList from '../../../components/OptionsList';
 import Navigation from '../../../libs/Navigation/Navigation';
 import compose from '../../../libs/compose';
 import withReportOrNotFound from '../../home/report/withReportOrNotFound';
+import FullPageNotFoundView from '../../../components/BlockingViews/FullPageNotFoundView';
 import reportPropTypes from '../../reportPropTypes';
 import ROUTES from '../../../ROUTES';
 import * as Report from '../../../libs/actions/Report';
+import * as ReportUtils from '../../../libs/ReportUtils';
 import * as Expensicons from '../../../components/Icon/Expensicons';
 import themeColors from '../../../styles/themes/default';
 
@@ -23,6 +25,7 @@ const propTypes = {
 const greenCheckmark = {src: Expensicons.Checkmark, color: themeColors.success};
 
 function NotificationPreferencePage(props) {
+    const shouldDisableNotificationPreferences = ReportUtils.shouldDisableSettings(props.report);
     const notificationPreferenceOptions = _.map(props.translate('notificationPreferencesPage.notificationPreferences'), (preference, key) => ({
         value: key,
         text: preference,
@@ -37,23 +40,25 @@ function NotificationPreferencePage(props) {
 
     return (
         <ScreenWrapper includeSafeAreaPaddingBottom={false}>
-            <HeaderWithBackButton
-                title={props.translate('notificationPreferencesPage.header')}
-                onBackButtonPress={() => Navigation.goBack(ROUTES.getReportSettingsRoute(props.report.reportID))}
-            />
-            <OptionsList
-                sections={[{data: notificationPreferenceOptions}]}
-                onSelectRow={(option) => Report.updateNotificationPreferenceAndNavigate(props.report.reportID, props.report.notificationPreference, option.value)}
-                hideSectionHeaders
-                optionHoveredStyle={{
-                    ...styles.hoveredComponentBG,
-                    ...styles.mhn5,
-                    ...styles.ph5,
-                }}
-                shouldHaveOptionSeparator
-                shouldDisableRowInnerPadding
-                contentContainerStyles={[styles.ph5]}
-            />
+            <FullPageNotFoundView shouldShow={shouldDisableNotificationPreferences}>
+                <HeaderWithBackButton
+                    title={props.translate('notificationPreferencesPage.header')}
+                    onBackButtonPress={() => Navigation.goBack(ROUTES.getReportSettingsRoute(props.report.reportID))}
+                />
+                <OptionsList
+                    sections={[{data: notificationPreferenceOptions}]}
+                    onSelectRow={(option) => Report.updateNotificationPreferenceAndNavigate(props.report.reportID, props.report.notificationPreference, option.value)}
+                    hideSectionHeaders
+                    optionHoveredStyle={{
+                        ...styles.hoveredComponentBG,
+                        ...styles.mhn5,
+                        ...styles.ph5,
+                    }}
+                    shouldHaveOptionSeparator
+                    shouldDisableRowInnerPadding
+                    contentContainerStyles={[styles.ph5]}
+                />
+            </FullPageNotFoundView>
         </ScreenWrapper>
     );
 }
diff --git a/src/pages/settings/Report/ReportSettingsPage.js b/src/pages/settings/Report/ReportSettingsPage.js
index c1eaaeed5e2..7af58818b4d 100644
--- a/src/pages/settings/Report/ReportSettingsPage.js
+++ b/src/pages/settings/Report/ReportSettingsPage.js
@@ -66,6 +66,7 @@ class ReportSettingsPage extends Component {
     }
 
     render() {
+        const shouldDisableSettings = ReportUtils.shouldDisableSettings(this.props.report);
         const shouldShowRoomName = !ReportUtils.isPolicyExpenseChat(this.props.report) && !ReportUtils.isChatThread(this.props.report);
         const linkedWorkspace = _.find(this.props.policies, (policy) => policy && policy.id === this.props.report.policyID);
         const shouldDisableRename = ReportUtils.shouldDisableRename(this.props.report, linkedWorkspace) || ReportUtils.isChatThread(this.props.report);
@@ -80,7 +81,7 @@ class ReportSettingsPage extends Component {
 
         return (
             <ScreenWrapper>
-                <FullPageNotFoundView shouldShow={_.isEmpty(this.props.report)}>
+                <FullPageNotFoundView shouldShow={_.isEmpty(this.props.report) || shouldDisableSettings}>
                     <HeaderWithBackButton
                         title={this.props.translate('common.settings')}
                         onBackButtonPress={() => Navigation.goBack(ROUTES.getReportDetailsRoute(this.props.report.reportID))}
