diff --git a/src/manager.cpp b/src/manager.cpp
index 65a154da7ddccd0f0b50666c78628bc9aae6eae0..c5af7a5eef6adce00fb0fdce5c5039fba643b7f8 100644
--- a/src/manager.cpp
+++ b/src/manager.cpp
@@ -2229,6 +2229,12 @@ std::vector<std::string>
 Manager::getAudioOutputDeviceList()
 {
     std::lock_guard<std::mutex> lock(pimpl_->audioLayerMutex_);
+
+    if (not pimpl_->audiodriver_) {
+        RING_ERR("Audio layer not initialized");
+        return {};
+    }
+
     return pimpl_->audiodriver_->getPlaybackDeviceList();
 }
 
@@ -2239,6 +2245,12 @@ std::vector<std::string>
 Manager::getAudioInputDeviceList()
 {
     std::lock_guard<std::mutex> lock(pimpl_->audioLayerMutex_);
+
+    if (not pimpl_->audiodriver_) {
+        RING_ERR("Audio layer not initialized");
+        return {};
+    }
+
     return pimpl_->audiodriver_->getCaptureDeviceList();
 }
 
@@ -2250,6 +2262,11 @@ Manager::getCurrentAudioDevicesIndex()
 {
     std::lock_guard<std::mutex> lock(pimpl_->audioLayerMutex_);
 
+    if (not pimpl_->audiodriver_) {
+        RING_ERR("Audio layer not initialized");
+        return {};
+    }
+
     std::vector<std::string> v;
 
     std::stringstream ssi, sso, ssr;