diff --git a/src/connectionmanager.cpp b/src/connectionmanager.cpp
index f20d1fe66e53ccb4ed9e505644e13316458cd08e..1ca85e7ea522f030a90864d316ac8d1a1b15b9f3 100644
--- a/src/connectionmanager.cpp
+++ b/src/connectionmanager.cpp
@@ -1473,7 +1473,7 @@ ConnectionManager::Impl::getIceOptions() const noexcept
     IceTransportOptions opts;
     opts.factory = config_->factory;
     opts.upnpEnable = getUPnPActive();
-    opts.upnpContext = config_->upnpCtrl->upnpContext();
+    opts.upnpContext = config_->upnpCtrl ? config_->upnpCtrl->upnpContext() : nullptr;
 
     if (config_->stunEnabled)
         opts.stunServers.emplace_back(StunServerInfo().setUri(config_->stunServer));