diff --git a/src/view/com/composer/Composer.tsx b/src/view/com/composer/Composer.tsx index a2cf83c75e..a09aaab8c1 100644 --- a/src/view/com/composer/Composer.tsx +++ b/src/view/com/composer/Composer.tsx @@ -389,9 +389,15 @@ export const ComposePost = ({ /* * Share-extension deeplinks deliver a video URI without duration, so * probe before we decide whether to compress. The picker and web paste - * paths already populate duration upstream. + * paths already populate duration upstream. GIFs must skip the probe: + * they have no video track, so the iOS prober never resolves or rejects + * and the await below would hang forever. */ - if (asset.duration == null && IS_NATIVE) { + if ( + asset.duration == null && + IS_NATIVE && + asset.mimeType !== 'image/gif' + ) { try { const probed = await getVideoMetadata(asset.uri) asset = {