From 169a3f5a695c9954c499c61fdfac70ae4ca1da5f Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 9 Jun 2026 15:57:29 +0300 Subject: [PATCH] catch notallowederror in gif player --- modules/expo-bluesky-gif-view/src/GifView.web.tsx | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/modules/expo-bluesky-gif-view/src/GifView.web.tsx b/modules/expo-bluesky-gif-view/src/GifView.web.tsx index c9f439bffe..e51b9bf9fc 100644 --- a/modules/expo-bluesky-gif-view/src/GifView.web.tsx +++ b/modules/expo-bluesky-gif-view/src/GifView.web.tsx @@ -67,7 +67,18 @@ export class GifView extends PureComponent { } async playAsync(): Promise { - this.videoPlayerRef.current?.play() + try { + await this.videoPlayerRef.current?.play() + } catch (err) { + // `play()` rejects with a NotAllowedError when the browser blocks + // playback (e.g. Safari low-power mode or autoplay policy). This is + // expected and benign - the GIF simply stays paused - so swallow it + // rather than letting it surface as an unhandled rejection. + if (err instanceof DOMException && err.name === 'NotAllowedError') { + return + } + throw err + } } async pauseAsync(): Promise {