expo / expo-cli

Tools for creating, running, and deploying universal Expo and React Native apps
https://docs.expo.io/workflow/expo-cli/
2.61k stars 477 forks source link

[expo-av] Unhandled promise rejection: Error: Seeking interrupted #4096

Closed dVVIIb closed 2 years ago

dVVIIb commented 2 years ago

Summary

May be related to: Expo Bug. I'm not sure which repo this bug belongs in. Probably only on Windows + iOS Expo Go. Note that while there may be partial workarounds for static audio files, I'm playing streams (streaming audio), and I don't believe a fix or workaround exists yet. This is a very very long standing issue.

Environment

Expo CLI 5.0.4 environment info: System: OS: Windows 10 10.0.19043 Binaries: Node: 17.3.0 - C:\0\A\NODE\17.3.0\x64\node.EXE npm: 8.3.0 - C:\0\A\NODE\17.3.0\x64\npm.CMD Expo Workflow: managed

Please specify your device/emulator/simulator platform, model and version

iPhone 11 Pro, and possibly iPhone XS etc.

Error output

Warning: Expected SleepOverlay state to match memoized state before processing the update queue. This might either be because of a bug in React, or because a component reassigns its own this.state. Please file an issue. at node_modules\react-native\Libraries\LogBox\LogBox.js:174:8 in registerError at node_modules\react-native\Libraries\LogBox\LogBox.js:60:8 in errorImpl at node_modules\react-native\Libraries\LogBox\LogBox.js:34:4 in console.error at node_modules\expo\build\environment\react-native-logs.fx.js:27:4 in error at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:85:4 in printWarning at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:61:16 in error at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:16592:19 in commitLifeCycles at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:19216:22 in commitLayoutEffects at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:93:4 in invokeGuardedCallbackProd at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:318:2 in invokeGuardedCallback at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18952:29 in commitRootImpl at node_modules\scheduler\cjs\scheduler.development.js:468:23 in unstable_runWithPriority at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18791:17 in commitRoot at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18192:12 in performSyncWorkOnRoot at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5911:33 in runWithPriority$argument_1 at node_modules\scheduler\cjs\scheduler.development.js:468:23 in unstable_runWithPriority at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5906:23 in flushSyncCallbackQueueImpl at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:5893:28 in flushSyncCallbackQueue at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:17745:30 in scheduleUpdateOnFiber at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:7350:25 in classComponentUpdater.enqueueSetState at node_modules\react\cjs\react.development.js:365:2 in Component.prototype.setState at App.js:214:12 in sound.unloadAsync._finally$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\finally.js:8:28 in then$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\core.js:37:13 in tryCallOne at node_modules\react-native\node_modules\promise\setimmediate\core.js:123:24 in setImmediate$argument_0 at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:123:14 in _callTimer at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:177:14 in _callImmediatesPass at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:437:30 in callImmediates at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:388:6 in __callImmediates at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:132:6 in guard$argument_0 at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:365:10 in guard at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:131:4 in flushedQueue

[Unhandled promise rejection: Error: Seeking interrupted.] at node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:104:50 in promiseMethodWrapper at node_modules\expo-modules-core\build\NativeModulesProxy.native.js:27:27 in moduleName.methodInfo.name at node_modules\expo-av\build\Audio\Sound.js:176:64 in _performOperationAndHandleStatusAsync$argument_0 at node_modules\expo-av\build\Audio\Sound.js:42:42 in _performOperationAndHandleStatusAsync at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:294:29 in invoke at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:155:27 in invoke at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async at node_modules\expo-av\build\Audio\Sound.js:39:4 in _performOperationAndHandleStatusAsync at node_modules\expo-av\build\Audio\Sound.js:176:15 in setStatusAsync at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:294:29 in invoke at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:155:27 in invoke at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async at node_modules\expo-av\build\Audio\Sound.js:174:4 in setStatusAsync at node_modules\expo-av\build\AV.js:139:15 in PlaybackMixin.stopAsync at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:294:29 in invoke at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:155:27 in invoke at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async at node_modules\expo-av\build\AV.js:138:22 in PlaybackMixin.stopAsync at node_modules\expo-av\build\AV.js:138:22 in PlaybackMixin.stopAsync at App.js:211:6 in play at App.js:119:13 in BigButton#pressed at node_modules\react-native\Libraries\Pressability\Pressability.js:697:17 in _performTransitionSideEffects at node_modules\react-native\Libraries\Pressability\Pressability.js:634:6 in _receiveSignal at node_modules\react-native\Libraries\Pressability\Pressability.js:528:8 in responderEventHandlers.onResponderRelease at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:93:4 in invokeGuardedCallbackProd at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:318:2 in invokeGuardedCallback at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:342:2 in invokeGuardedCallbackAndCatchFirstError at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:439:41 in executeDispatch at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:463:19 in executeDispatchesInOrder at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2563:28 in executeDispatchesAndRelease at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:1212:4 in forEachAccumulated at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2588:20 in runEventsInBatch at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2735:18 in runExtractedPluginEventsInBatch at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2681:35 in batchedUpdates$argument_0 at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18204:13 in batchedUpdates$1 at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2534:29 in batchedUpdates at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2680:16 in _receiveRootNodeIDEvent at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2800:27 in receiveTouches at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:4 in __callFunction at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:6 in guard$argument_0 at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:365:10 in guard at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:112:4 in callFunctionReturnFlushedQueue

Disconnected from Metro. at node_modules\react-native\Libraries\LogBox\LogBox.js:118:10 in registerWarning at node_modules\react-native\Libraries\LogBox\LogBox.js:64:8 in warnImpl at node_modules\react-native\Libraries\LogBox\LogBox.js:37:4 in console.warn at node_modules\expo\build\environment\react-native-logs.fx.js:18:4 in warn at node_modules\react-native\Libraries\Utilities\HMRClient.js:268:4 in setHMRUnavailableReason at node_modules\react-native\Libraries\Utilities\HMRClient.js:242:29 in client.on$argument_1 at node_modules\metro-runtime\src\modules\vendor\eventemitter3.js:192:15 in emit at node_modules\metro-runtime\src\modules\HMRClient.js:146:6 in _ws.onclose at node_modules\event-target-shim\dist\event-target-shim.js:818:20 in EventTarget.prototype.dispatchEvent at node_modules\react-native\Libraries\WebSocket\WebSocket.js:244:8 in _eventEmitter.addListener$argument_1 at node_modules\react-native\Libraries\vendor\emitter_EventEmitter.js:135:10 in EventEmitter#emit at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:4 in __callFunction at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:6 in guard$argument_0 at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:365:10 in guard at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:112:4 in callFunctionReturnFlushedQueue

Reproducible demo or steps to reproduce from a blank project

I'm not 100% sure but I believe this should reproduce it, but not in Snack. Try the code in the specified environment + devices (Windows 10 + iPhone 11 Pro or XS, etc.). My production code is a bit too long to post here, but I'll see if I can make a new trimmed down project later.

dVVIIb commented 2 years ago

Sorry, ignore the Warning: Expected SleepOverlay state to match memoized state before processing the update queue. That's a different error in the code.

This is the relevant issue:

[Unhandled promise rejection: Error: Seeking interrupted.]
at node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:104:50 in promiseMethodWrapper
at node_modules\expo-modules-core\build\NativeModulesProxy.native.js:27:27 in moduleName.methodInfo.name
at node_modules\expo-av\build\Audio\Sound.js:176:64 in _performOperationAndHandleStatusAsync$argument_0
at node_modules\expo-av\build\Audio\Sound.js:42:42 in _performOperationAndHandleStatusAsync
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:294:29 in invoke
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:155:27 in invoke
at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0
at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo
at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve
at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise
at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg
at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue
at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async
at node_modules\expo-av\build\Audio\Sound.js:39:4 in _performOperationAndHandleStatusAsync
at node_modules\expo-av\build\Audio\Sound.js:176:15 in setStatusAsync
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:294:29 in invoke
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:155:27 in invoke
at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0
at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo
at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve
at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise
at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg
at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue
at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async
at node_modules\expo-av\build\Audio\Sound.js:174:4 in setStatusAsync
at node_modules\expo-av\build\AV.js:139:15 in PlaybackMixin.stopAsync
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:294:29 in invoke
at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch
at node_modules\regenerator-runtime\runtime.js:155:27 in invoke
at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0
at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo
at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve
at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise
at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg
at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue
at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async
at node_modules\expo-av\build\AV.js:138:22 in PlaybackMixin.stopAsync
at node_modules\expo-av\build\AV.js:138:22 in PlaybackMixin.stopAsync
at App.js:211:6 in play
at App.js:119:13 in BigButton#pressed
at node_modules\react-native\Libraries\Pressability\Pressability.js:697:17 in _performTransitionSideEffects
at node_modules\react-native\Libraries\Pressability\Pressability.js:634:6 in _receiveSignal
at node_modules\react-native\Libraries\Pressability\Pressability.js:528:8 in responderEventHandlers.onResponderRelease
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:93:4 in invokeGuardedCallbackProd
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:318:2 in invokeGuardedCallback
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:342:2 in invokeGuardedCallbackAndCatchFirstError
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:439:41 in executeDispatch
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:463:19 in executeDispatchesInOrder
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2563:28 in executeDispatchesAndRelease
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:1212:4 in forEachAccumulated
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2588:20 in runEventsInBatch
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2735:18 in runExtractedPluginEventsInBatch
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2681:35 in batchedUpdates$argument_0
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:18204:13 in batchedUpdates$1
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2534:29 in batchedUpdates
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2680:16 in _receiveRootNodeIDEvent
at node_modules\react-native\Libraries\Renderer\implementations\ReactNativeRenderer-dev.js:2800:27 in receiveTouches
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:4 in __callFunction
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:6 in __guard$argument_0
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:365:10 in __guard
at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:112:4 in callFunctionReturnFlushedQueue
yinoxavier commented 2 years ago

I have the same problem. Have you been able to solve?

TalhaAbid commented 2 years ago

any updates on this? Only happens on ios but works fine on android, making the whole app useless as live radio is a core component.

TalhaAbid commented 2 years ago

i've fixed it by unloading directly, no trying to stop or anything

ElmehdiBaccari commented 2 years ago

I have the same Bug Using Expo-Camera / Expo-AV , it works on IOS and not Android , any solutions ?

at node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:104:50 in promiseMethodWrapper at node_modules\expo-modules-core\build\NativeModulesProxy.native.js:27:27 in moduleName.methodInfo.name at node_modules\expo-camera\build\Camera.js:156:4 in recordAsync at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:294:29 in invoke at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:155:27 in invoke at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async at node_modules\expo-camera\build\Camera.js:156:4 in recordAsync at src\components\recorders\video\CameraRecord.tsx:47:43 in recordVideo at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:294:29 in invoke at node_modules\regenerator-runtime\runtime.js:63:36 in tryCatch at node_modules\regenerator-runtime\runtime.js:155:27 in invoke at node_modules\regenerator-runtime\runtime.js:190:16 in PromiseImpl$argument_0 at node_modules\react-native\node_modules\promise\setimmediate\core.js:45:6 in tryCallTwo at node_modules\react-native\node_modules\promise\setimmediate\core.js:200:22 in doResolve at node_modules\react-native\node_modules\promise\setimmediate\core.js:66:11 in Promise at node_modules\regenerator-runtime\runtime.js:189:15 in callInvokeWithMethodAndArg at node_modules\regenerator-runtime\runtime.js:212:38 in enqueue at node_modules\regenerator-runtime\runtime.js:239:8 in exports.async at src\components\recorders\video\CameraRecord.tsx:43:24 in recordVideo at src\components\recorders\video\CameraRecord.tsx:108:105 in TouchableOpacity.props.onLongPress at node_modules\react-native\Libraries\Pressability\Pressability.js:668:19 in _performTransitionSideEffects at node_modules\react-native\Libraries\Pressability\Pressability.js:634:6 in _receiveSignal at node_modules\react-native\Libraries\Pressability\Pressability.js:818:6 in _handleLongPress at node_modules\react-native\Libraries\Pressability\Pressability.js:489:10 in setTimeout$argument_0 at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:123:14 in _callTimer at node_modules\react-native\Libraries\Core\Timers\JSTimers.js:379:16 in callTimers at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:414:4 in __callFunction at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:113:6 in guard$argument_0 at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:365:10 in guard at node_modules\react-native\Libraries\BatchedBridge\MessageQueue.js:112:4 in callFunctionReturnFlushedQueue

github-actions[bot] commented 2 years ago

This issue is stale because it has been open for 60 days with no activity. If there is no activity in the next 7 days, the issue will be closed.

github-actions[bot] commented 2 years ago

This issue was closed because it has been inactive for 7 days since being marked as stale. Please open a new issue if you believe you are encountering a related problem.