diff --git a/src/media/audio/audio_rtp_session.cpp b/src/media/audio/audio_rtp_session.cpp
index 7d44261ddedd4dec891059231f7ee01d81ccf514..afd9590d1bdd9ab589c3e6fc7d815ef3380290ac 100644
--- a/src/media/audio/audio_rtp_session.cpp
+++ b/src/media/audio/audio_rtp_session.cpp
@@ -392,6 +392,10 @@ void
 AudioRtpSession::restartSender()
 {
     std::lock_guard<std::recursive_mutex> lock(mutex_);
+    // ensure that start has been called before restart
+    if (not socketPair_)
+        return;
+
     startSender();
 }
 
diff --git a/src/media/video/video_rtp_session.cpp b/src/media/video/video_rtp_session.cpp
index 4a1571104a61158f467b55ce63a0e0ae208e5f1a..219d4da360f4e515154c1e0530c1e59c07c5c825 100644
--- a/src/media/video/video_rtp_session.cpp
+++ b/src/media/video/video_rtp_session.cpp
@@ -114,6 +114,10 @@ VideoRtpSession::restartSender()
 {
     std::lock_guard<std::recursive_mutex> lock(mutex_);
 
+    // ensure that start has been called before restart
+    if (not socketPair_)
+        return;
+
     startSender();
     setupVideoPipeline();
 }