diff --git a/native/media/file-utils.js b/native/media/file-utils.js
--- a/native/media/file-utils.js
+++ b/native/media/file-utils.js
@@ -1,7 +1,6 @@
 // @flow
 
 import base64 from 'base-64';
-import * as ExpoFileSystem from 'expo-file-system';
 import * as MediaLibrary from 'expo-media-library';
 import invariant from 'invariant';
 import { Platform } from 'react-native';
@@ -34,7 +33,6 @@
 
 export type FetchFileInfoResult = {
   +success: true,
-  +uri: string,
   +orientation: ?number,
   +fileSize: number,
   +mime: ?string,
@@ -57,14 +55,13 @@
   const { mediaNativeID } = optionalInputs;
   const steps: Array<MediaMissionStep> = [];
 
-  let assetInfoPromise, assetURI;
+  let assetInfoPromise;
   const inputPath = pathFromURI(inputURI);
   if (mediaNativeID && (!inputPath || optionalFields.orientation)) {
     assetInfoPromise = (async () => {
       const { steps: assetInfoSteps, result: assetInfoResult } =
         await fetchAssetInfo(mediaNativeID);
       steps.push(...assetInfoSteps);
-      assetURI = assetInfoResult.localURI;
       return assetInfoResult;
     })();
   }
@@ -154,27 +151,10 @@
     };
   }
 
-  let finalURI = uri;
-  // prefer asset URI, with one exception:
-  // if the target URI is a file in our app local cache dir, we shouldn't
-  // replace it because it was already preprocessed by either our media
-  // processing logic or cropped by expo-image-picker
-  const isFileInCacheDir =
-    uri.includes(temporaryDirectoryPath) ||
-    uri.includes(ExpoFileSystem.cacheDirectory);
-  if (assetURI && assetURI !== uri && !isFileInCacheDir) {
-    finalURI = assetURI;
-    console.log(
-      'fetchAssetInfo returned localURI ' +
-        `${assetURI} when we already had ${uri}`,
-    );
-  }
-
   return {
     steps,
     result: {
       success: true,
-      uri: finalURI,
       orientation,
       fileSize,
       mime: types.mime,
diff --git a/native/media/media-utils.js b/native/media/media-utils.js
--- a/native/media/media-utils.js
+++ b/native/media/media-utils.js
@@ -87,8 +87,7 @@
   config: MediaProcessConfig,
   sendResult: (result: MediaMissionFailure | MediaResult) => void,
 ): Promise<$ReadOnlyArray<MediaMissionStep>> {
-  let initialURI = null,
-    uploadURI = null,
+  let uploadURI = null,
     uploadThumbnailURI = null,
     dimensions = selection.dimensions,
     mediaType = null,
@@ -111,7 +110,7 @@
       'missing required fields in returnResult',
     );
     const shouldDisposePath =
-      initialURI !== uploadURI ? pathFromURI(uploadURI) : null;
+      selection.uri !== uploadURI ? pathFromURI(uploadURI) : null;
     const filename = sanitizeFilename(selection.filename, mime);
     if (mediaType === 'video') {
       invariant(uploadThumbnailURI, 'video should have uploadThumbnailURI');
@@ -184,7 +183,7 @@
     return await finish(fileInfoResult);
   }
   const { orientation, fileSize } = fileInfoResult;
-  ({ uri: initialURI, mime, mediaType } = fileInfoResult);
+  ({ mime, mediaType } = fileInfoResult);
   if (!mime || !mediaType) {
     return await finish({
       success: false,
@@ -196,7 +195,7 @@
   if (mediaType === 'video') {
     const { steps: videoSteps, result: videoResult } = await processVideo(
       {
-        uri: initialURI,
+        uri: selection.uri,
         mime,
         filename: selection.filename,
         fileSize,
@@ -221,7 +220,7 @@
     } = videoResult);
   } else if (mediaType === 'photo') {
     const { steps: imageSteps, result: imageResult } = await processImage({
-      uri: initialURI,
+      uri: selection.uri,
       dimensions,
       mime,
       fileSize,
@@ -236,7 +235,7 @@
     invariant(false, `unknown mediaType ${mediaType}`);
   }
 
-  if (uploadURI === initialURI) {
+  if (uploadURI === selection.uri) {
     return await finish();
   }
 
diff --git a/native/media/video-utils.js b/native/media/video-utils.js
--- a/native/media/video-utils.js
+++ b/native/media/video-utils.js
@@ -1,9 +1,8 @@
 // @flow
 
-import invariant from 'invariant';
 import filesystem from 'react-native-fs';
 
-import { mediaConfig, pathFromURI } from 'lib/media/file-utils.js';
+import { mediaConfig } from 'lib/media/file-utils.js';
 import { getVideoProcessingPlan } from 'lib/media/video-utils.js';
 import type { ProcessPlan } from 'lib/media/video-utils.js';
 import type {
@@ -63,9 +62,7 @@
   result: MediaMissionFailure | ProcessVideoResponse,
 }> {
   const steps: Array<MediaMissionStep> = [];
-
-  const path = pathFromURI(input.uri);
-  invariant(path, `could not extract path from ${input.uri}`);
+  const path = input.uri;
 
   const initialCheckStep = await checkVideoInfo(path);
   steps.push(initialCheckStep);