diff --git a/lib/structs/events/voip.cpp b/lib/structs/events/voip.cpp
index f75b08b175950e81cd90786a69798dca4cf17db7..6cd1a390b49ab7f80815e6ab11fe0848d6e82ae7 100644
--- a/lib/structs/events/voip.cpp
+++ b/lib/structs/events/voip.cpp
@@ -79,9 +79,12 @@ to_json(json &obj, const CallInvite &content)
 void
 from_json(const json &obj, CallCandidates::Candidate &content)
 {
-    content.sdpMid        = obj.at("sdpMid").get<std::string>();
-    content.sdpMLineIndex = obj.at("sdpMLineIndex").get<uint16_t>();
-    content.candidate     = obj.at("candidate").get<std::string>();
+    if(obj.contains("sdpMid"))
+        content.sdpMid        = obj.at("sdpMid").get<std::string>();
+    if(obj.contains("sdpMLineIndex"))
+        content.sdpMLineIndex = obj.at("sdpMLineIndex").get<uint16_t>();
+    if(obj.contains("candidate"))
+        content.candidate     = obj.at("candidate").get<std::string>();
 }
 
 void