If the initialisation segment received in SourceBufferPrivate::didReceiveInitializationSegment is invalid; then the CompletionHandler will not be called; which would assert in the CompletionHandler destructor void SourceBufferPrivate::didReceiveInitializationSegment(SourceBufferPrivateClient::InitializationSegment&& segment, CompletionHandler<void()>&& completionHandler) { if (!m_client) { completionHandler(); return; } if (m_receivedFirstInitializationSegment && !validateInitializationSegment(segment)) { m_client->sourceBufferPrivateAppendError(true); return; } ... } if validateInitializationSegment(segment) returns false; then we will error, and return. But this would assert once completionHandler goes out of scope.
<rdar://problem/80446981>