diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h
index 8c0db289ae96d751eae25a355a6588818ff51a63..58a2d84c90aea73cceca47a38ecf1cd17bea7e8c 100644
--- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h
+++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.h
@@ -103,6 +103,7 @@ public Q_SLOTS:
     void processEOS();
     void processLoadStateChange();
     void processPositionChange();
+    void processMediaLoadError();
 
     void processCurrentItemChanged();
 
diff --git a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm
index 83042ce96e325c1c2b6fa500ffcdfcc6ab4a727c..7af6f439497c14179d570f3b5c2efb8d1fde0f97 100644
--- a/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm
+++ b/src/plugins/avfoundation/mediaplayer/avfmediaplayersession.mm
@@ -283,7 +283,7 @@ static void *AVFMediaPlayerSessionObserverCurrentItemObservationContext = &AVFMe
 -(void) assetFailedToPrepareForPlayback:(NSError *)error
 {
     Q_UNUSED(error)
-    //TODO: Let the session know that the assest failed to prepare for playback
+    QMetaObject::invokeMethod(m_session, "processMediaLoadError", Qt::AutoConnection);
 #ifdef QT_DEBUG_AVF
     qDebug() << Q_FUNC_INFO;
     qDebug() << [[error localizedDescription] UTF8String];
@@ -799,13 +799,6 @@ void AVFMediaPlayerSession::processLoadStateChange()
             [[(AVFMediaPlayerSessionObserver*)m_observer player] setRate:m_rate];
             [[(AVFMediaPlayerSessionObserver*)m_observer player] play];
         }
-
-    } else {
-        Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media"));
-        Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia);
-        Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState);
-
-        return;
     }
 
     if (newStatus != m_mediaStatus)
@@ -817,6 +810,13 @@ void AVFMediaPlayerSession::processPositionChange()
     Q_EMIT positionChanged(position());
 }
 
+void AVFMediaPlayerSession::processMediaLoadError()
+{
+    Q_EMIT error(QMediaPlayer::FormatError, tr("Failed to load media"));
+    Q_EMIT mediaStatusChanged(m_mediaStatus = QMediaPlayer::InvalidMedia);
+    Q_EMIT stateChanged(m_state = QMediaPlayer::StoppedState);
+}
+
 void AVFMediaPlayerSession::processCurrentItemChanged()
 {
 #ifdef QT_DEBUG_AVF