PlaybackException
What a suspending player command throws when playback failed.
The value is the whole of the information; this class exists because a suspending function that cannot deliver a result has to throw, and because a caller writing try around open wants one type to catch. Nothing else in the engine throws it.
Cancellation is never converted into one of these. A caller that cancels its own coroutine gets a kotlin.coroutines.cancellation.CancellationException, because cancellation is not a playback failure and turning it into one breaks every structured-concurrency rule the caller relies on.