diff --git a/src/components/HeaderWithBackButton/index.tsx b/src/components/HeaderWithBackButton/index.tsx
index 4032dc08fd61..a1899ec7ca64 100755
--- a/src/components/HeaderWithBackButton/index.tsx
+++ b/src/components/HeaderWithBackButton/index.tsx
@@ -6,6 +6,8 @@ import Avatar from '@components/Avatar';
 import AvatarWithDisplayName from '@components/AvatarWithDisplayName';
 import Header from '@components/Header';
 import Icon from '@components/Icon';
+// eslint-disable-next-line no-restricted-imports
+import * as Expensicons from '@components/Icon/Expensicons';
 import PinButton from '@components/PinButton';
 import PressableWithoutFeedback from '@components/Pressable/PressableWithoutFeedback';
 import SearchButton from '@components/Search/SearchRouter/SearchButton';
@@ -34,7 +36,6 @@ function HeaderWithBackButton({
     onBackButtonPress = () => Navigation.goBack(),
     onCloseButtonPress = () => Navigation.dismissModal(),
     onDownloadButtonPress = () => {},
-    onRotateButtonPress = () => {},
     onThreeDotsButtonPress = () => {},
     report,
     policyAvatar,
@@ -45,8 +46,6 @@ function HeaderWithBackButton({
     shouldShowCloseButton = false,
     shouldShowDownloadButton = false,
     isDownloading = false,
-    shouldShowRotateButton = false,
-    isRotating = false,
     shouldShowPinButton = false,
     shouldSetModalVisibility = true,
     shouldShowThreeDotsButton = false,
@@ -76,7 +75,7 @@ function HeaderWithBackButton({
     shouldMinimizeMenuButton = false,
     openParentReportInCurrentTab = false,
 }: HeaderWithBackButtonProps) {
-    const icons = useMemoizedLazyExpensifyIcons(['Download', 'Rotate', 'BackArrow', 'Close']);
+    const icons = useMemoizedLazyExpensifyIcons(['Download']);
     const theme = useTheme();
     const styles = useThemeStyles();
     const StyleUtils = useStyleUtils();
@@ -227,7 +226,7 @@ function HeaderWithBackButton({
                             sentryLabel={CONST.SENTRY_LABEL.HEADER.BACK_BUTTON}
                         >
                             <Icon
-                                src={icons.BackArrow}
+                                src={Expensicons.BackArrow}
                                 fill={iconFill ?? theme.icon}
                             />
                         </PressableWithoutFeedback>
@@ -285,24 +284,6 @@ function HeaderWithBackButton({
                             ) : (
                                 <ActivityIndicator style={[styles.touchableButtonImage]} />
                             ))}
-                        {shouldShowRotateButton &&
-                            (!isRotating ? (
-                                <Tooltip text={translate('common.rotate')}>
-                                    <PressableWithoutFeedback
-                                        onPress={onRotateButtonPress}
-                                        style={[styles.touchableButtonImage]}
-                                        role="button"
-                                        accessibilityLabel={translate('common.rotate')}
-                                    >
-                                        <Icon
-                                            src={icons.Rotate}
-                                            fill={iconFill ?? theme.icon}
-                                        />
-                                    </PressableWithoutFeedback>
-                                </Tooltip>
-                            ) : (
-                                <ActivityIndicator style={[styles.touchableButtonImage]} />
-                            ))}
                         {shouldShowPinButton && !!report && <PinButton report={report} />}
                     </View>
                     {ThreeDotMenuButton}
@@ -316,7 +297,7 @@ function HeaderWithBackButton({
                                 sentryLabel={CONST.SENTRY_LABEL.HEADER.CLOSE_BUTTON}
                             >
                                 <Icon
-                                    src={icons.Close}
+                                    src={Expensicons.Close}
                                     fill={iconFill ?? theme.icon}
                                 />
                             </PressableWithoutFeedback>
diff --git a/src/components/HeaderWithBackButton/types.ts b/src/components/HeaderWithBackButton/types.ts
index 03632ba9c0e6..65f9bb45b5d3 100644
--- a/src/components/HeaderWithBackButton/types.ts
+++ b/src/components/HeaderWithBackButton/types.ts
@@ -51,9 +51,6 @@ type HeaderWithBackButtonProps = Partial<ChildrenProps> & {
     /** Method to trigger when pressing download button of the header */
     onDownloadButtonPress?: () => void;
 
-    /** Method to trigger when pressing rotate button of the header */
-    onRotateButtonPress?: () => void;
-
     /** Method to trigger when pressing close button of the header */
     onCloseButtonPress?: () => void;
 
@@ -75,12 +72,6 @@ type HeaderWithBackButtonProps = Partial<ChildrenProps> & {
     /** Whether we should show a loading indicator replacing the download button */
     isDownloading?: boolean;
 
-    /** Whether we should show a rotate button */
-    shouldShowRotateButton?: boolean;
-
-    /** Whether we should show a loading indicator replacing the rotate button */
-    isRotating?: boolean;
-
     /** Whether we should show a pin button */
     shouldShowPinButton?: boolean;
 
diff --git a/src/libs/fetchImage/index.native.ts b/src/libs/fetchImage/index.native.ts
deleted file mode 100644
index 78bb44ee0fd2..000000000000
--- a/src/libs/fetchImage/index.native.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import RNFetchBlob from 'react-native-blob-util';
-import {splitExtensionFromFileName} from '@libs/fileDownload/FileUtils';
-import CONST from '@src/CONST';
-
-export default function fetchImage(source: string, authToken: string) {
-    // Create a unique filename based on timestamp
-    const timestamp = Date.now();
-    const extension = splitExtensionFromFileName(source).fileExtension || CONST.IMAGE_FILE_FORMAT.JPG;
-    const filename = `temp_image_${timestamp}.${extension}`;
-    const path = `${RNFetchBlob.fs.dirs.CacheDir}/${filename}`;
-
-    return RNFetchBlob.config({
-        fileCache: true,
-        path,
-    })
-        .fetch('GET', source, {
-            [CONST.CHAT_ATTACHMENT_TOKEN_KEY]: authToken,
-        })
-        .then((res) => {
-            // Return the file URI with file:// prefix for expo-image-manipulator
-            return `file://${res.path()}`;
-        });
-}
diff --git a/src/libs/fetchImage/index.ts b/src/libs/fetchImage/index.ts
deleted file mode 100644
index d9119c57aa14..000000000000
--- a/src/libs/fetchImage/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import CONST from '@src/CONST';
-
-export default function fetchImage(source: string, authToken: string) {
-    return fetch(source, {
-        headers: {
-            [CONST.CHAT_ATTACHMENT_TOKEN_KEY]: authToken,
-        },
-    })
-        .then((res) => res.blob())
-        .then((blob) => {
-            return URL.createObjectURL(blob);
-        });
-}
diff --git a/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/index.tsx b/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/index.tsx
index a4339380b0c4..76c891fd34d1 100644
--- a/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/index.tsx
+++ b/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/index.tsx
@@ -54,9 +54,6 @@ function AttachmentModalBaseContent({
     shouldShowCarousel = true,
     shouldDisableSendButton = false,
     shouldDisplayHelpButton = false,
-    shouldShowRotateButton = false,
-    onRotateButtonPress,
-    isRotating = false,
     submitRef,
     onDownloadAttachment,
     onClose,
@@ -297,9 +294,6 @@ function AttachmentModalBaseContent({
                 title={headerTitle ?? translate('common.attachment')}
                 shouldShowBorderBottom
                 shouldShowDownloadButton={shouldShowDownloadButton}
-                shouldShowRotateButton={shouldShowRotateButton}
-                onRotateButtonPress={onRotateButtonPress}
-                isRotating={isRotating}
                 shouldDisplayHelpButton={shouldDisplayHelpButton}
                 onDownloadButtonPress={() => onDownloadAttachment?.({file: fileToDisplay, source})}
                 shouldShowCloseButton={!shouldUseNarrowLayout}
diff --git a/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/types.ts b/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/types.ts
index b6c1d3792e4a..7ec62800de35 100644
--- a/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/types.ts
+++ b/src/pages/media/AttachmentModalScreen/AttachmentModalBaseContent/types.ts
@@ -90,15 +90,6 @@ type AttachmentModalBaseContentProps = {
     /** Whether to show download button */
     shouldShowDownloadButton?: boolean;
 
-    /** Whether to show rotate button */
-    shouldShowRotateButton?: boolean;
-
-    /** Callback triggered when the rotate button is pressed */
-    onRotateButtonPress?: () => void;
-
-    /** Whether we should show a loading indicator replacing the rotate button */
-    isRotating?: boolean;
-
     /** Whether to disable send button */
     shouldDisableSendButton?: boolean;
 
diff --git a/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx b/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx
index e40c22d6ae97..370d94c31ab2 100644
--- a/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx
+++ b/src/pages/media/AttachmentModalScreen/routes/TransactionReceiptModalContent.tsx
@@ -1,4 +1,3 @@
-import {Str} from 'expensify-common';
 import React, {useCallback, useEffect, useMemo, useState} from 'react';
 import ConfirmModal from '@components/ConfirmModal';
 // eslint-disable-next-line no-restricted-imports
@@ -8,10 +7,8 @@ import useLocalize from '@hooks/useLocalize';
 import useNetwork from '@hooks/useNetwork';
 import useOnyx from '@hooks/useOnyx';
 import usePolicy from '@hooks/usePolicy';
-import {detachReceipt, navigateToStartStepIfScanFileCannotBeRead, replaceReceipt, setMoneyRequestReceipt} from '@libs/actions/IOU';
+import {detachReceipt, navigateToStartStepIfScanFileCannotBeRead} from '@libs/actions/IOU';
 import {openReport} from '@libs/actions/Report';
-import cropOrRotateImage from '@libs/cropOrRotateImage';
-import fetchImage from '@libs/fetchImage';
 import Navigation from '@libs/Navigation/Navigation';
 import {getThumbnailAndImageURIs} from '@libs/ReceiptUtils';
 import {getReportAction, isTrackExpenseAction} from '@libs/ReportActionsUtils';
@@ -25,7 +22,6 @@ import CONST from '@src/CONST';
 import ONYXKEYS from '@src/ONYXKEYS';
 import ROUTES from '@src/ROUTES';
 import type SCREENS from '@src/SCREENS';
-import type {ReceiptSource} from '@src/types/onyx/Transaction';
 import useDownloadAttachment from './hooks/useDownloadAttachment';
 
 function TransactionReceiptModalContent({navigation, route}: AttachmentModalScreenProps<typeof SCREENS.TRANSACTION_RECEIPT>) {
@@ -41,7 +37,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
     const [transactionDraft] = useOnyx(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {canBeMissing: true});
     const [reportMetadata = CONST.DEFAULT_REPORT_METADATA] = useOnyx(`${ONYXKEYS.COLLECTION.REPORT_METADATA}${reportID}`, {canBeMissing: true});
     const [policyCategories] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_CATEGORIES}${report?.policyID}`, {canBeMissing: true});
-    const [session] = useOnyx(ONYXKEYS.SESSION, {canBeMissing: true});
     const policy = usePolicy(report?.policyID);
 
     // If we have a merge transaction, we need to use the receipt from the merge transaction
@@ -73,7 +68,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
     const readonly = readonlyParam === 'true';
     const isFromReviewDuplicates = isFromReviewDuplicatesParam === 'true';
     const source = isDraftTransaction ? transactionDraft?.receipt?.source : tryResolveUrlFromApiRoot(receiptURIs.image ?? '');
-    const [sourceUri, setSourceUri] = useState<ReceiptSource>('');
 
     const parentReportAction = getReportAction(report?.parentReportID, report?.parentReportActionID);
     const canEditReceipt = canEditFieldOfMoneyRequest(parentReportAction, CONST.EDIT_REQUEST_FIELD.RECEIPT);
@@ -86,11 +80,7 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
     const isTrackExpenseActionValue = isTrackExpenseAction(parentReportAction);
     const iouType = useMemo(() => iouTypeParam ?? (isTrackExpenseActionValue ? CONST.IOU.TYPE.TRACK : CONST.IOU.TYPE.SUBMIT), [isTrackExpenseActionValue, iouTypeParam]);
 
-    const receiptFilename = transaction?.receipt?.filename;
-    const isImage = !!receiptFilename && Str.isImage(receiptFilename);
-
     const [isDeleteReceiptConfirmModalVisible, setIsDeleteReceiptConfirmModalVisible] = useState(false);
-    const [isRotating, setIsRotating] = useState(false);
 
     useEffect(() => {
         if ((!!report && !!transaction) || isDraftTransaction) {
@@ -101,27 +91,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
         // eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
     }, []);
 
-    useEffect(() => {
-        if (!source || !isImage) {
-            return;
-        }
-
-        if (!isAuthTokenRequired || typeof source !== 'string') {
-            setSourceUri(source);
-            return;
-        }
-
-        if (!session?.encryptedAuthToken) {
-            return;
-        }
-
-        fetchImage(source, session?.encryptedAuthToken)
-            .then((uri) => {
-                setSourceUri(uri);
-            })
-            .catch(() => setSourceUri(''));
-    }, [source, isAuthTokenRequired, session?.encryptedAuthToken, isDraftTransaction, isImage]);
-
     const receiptPath = transaction?.receipt?.source;
 
     useEffect(() => {
@@ -130,6 +99,7 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
         }
 
         const requestType = getRequestType(transaction);
+        const receiptFilename = transaction?.receipt?.filename;
         const receiptType = transaction?.receipt?.type;
         navigateToStartStepIfScanFileCannotBeRead(
             receiptFilename,
@@ -157,7 +127,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
     }, [receiptPath]);
 
     const moneyRequestReportID = isMoneyRequestReport(report) ? report?.reportID : report?.parentReportID;
-    // eslint-disable-next-line @typescript-eslint/no-deprecated
     const isTrackExpenseReportValue = isTrackExpenseReport(report);
 
     // eslint-disable-next-line rulesdir/no-negated-variables
@@ -184,68 +153,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
 
     const allowDownload = !isEReceipt;
 
-    /**
-     * Rotate the receipt image 90 degrees and save it automatically.
-     */
-    const rotateReceipt = useCallback(() => {
-        if (!transaction?.transactionID || !sourceUri || !isImage) {
-            return;
-        }
-
-        const receiptType = transaction?.receipt?.type ?? CONST.IMAGE_FILE_FORMAT.JPEG;
-
-        setIsRotating(true);
-        cropOrRotateImage(sourceUri as string, [{rotate: -90}], {
-            compress: 1,
-            name: receiptFilename,
-            type: receiptType,
-        })
-            .then((rotatedImage) => {
-                if (!rotatedImage) {
-                    setIsRotating(false);
-                    return;
-                }
-
-                // Both web and native return objects with uri property
-                const imageUriResult = 'uri' in rotatedImage && rotatedImage.uri ? rotatedImage.uri : undefined;
-                if (!imageUriResult) {
-                    setIsRotating(false);
-                    return;
-                }
-
-                const file = rotatedImage as File;
-                const rotatedFilename = file.name ?? receiptFilename;
-
-                if (isDraftTransaction) {
-                    // Update the transaction immediately so the modal displays the rotated image right away
-                    setMoneyRequestReceipt(transaction.transactionID, imageUriResult, rotatedFilename, isDraftTransaction, receiptType);
-                } else {
-                    replaceReceipt({
-                        transactionID: transaction.transactionID,
-                        file,
-                        source: imageUriResult,
-                        transactionPolicyCategories: policyCategories,
-                        transactionPolicy: policy,
-                    });
-                }
-                setIsRotating(false);
-            })
-            .catch(() => {
-                setIsRotating(false);
-            });
-    }, [transaction?.transactionID, isDraftTransaction, sourceUri, isImage, receiptFilename, policyCategories, transaction?.receipt?.type, policy]);
-
-    const shouldShowRotateReceiptButton = useMemo(
-        () =>
-            shouldShowReplaceReceiptButton &&
-            transaction &&
-            hasReceiptSource(transaction) &&
-            !isEReceipt &&
-            !transaction?.receipt?.isTestDriveReceipt &&
-            (receiptFilename ? Str.isImage(receiptFilename) : false),
-        [shouldShowReplaceReceiptButton, transaction, isEReceipt, receiptFilename],
-    );
-
     const threeDotsMenuItems: ThreeDotsMenuItemFactory = useCallback(
         ({file, source: innerSource, isLocalSource}) => {
             const menuItems = [];
@@ -337,9 +244,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
             isLoading: !transaction && reportMetadata?.isLoadingInitialReportActions,
             shouldShowNotFoundPage,
             shouldShowCarousel: false,
-            shouldShowRotateButton: shouldShowRotateReceiptButton,
-            onRotateButtonPress: rotateReceipt,
-            isRotating,
             onDownloadAttachment: allowDownload ? undefined : onDownloadAttachment,
             transaction,
         }),
@@ -353,9 +257,6 @@ function TransactionReceiptModalContent({navigation, route}: AttachmentModalScre
             report,
             reportMetadata?.isLoadingInitialReportActions,
             shouldShowNotFoundPage,
-            shouldShowRotateReceiptButton,
-            rotateReceipt,
-            isRotating,
             source,
             threeDotsMenuItems,
             transaction,
