diff --git a/dbus/dbuspassive.cpp b/dbus/dbuspassive.cpp
index 160dbde..1d88b60 100644
--- a/dbus/dbuspassive.cpp
+++ b/dbus/dbuspassive.cpp
@@ -76,7 +76,39 @@
     }
     catch (const std::exception& e)
     {
+#ifndef HANDLE_MISSING_OBJECT_PATHS
         return nullptr;
+#else
+        // CASE1: The sensor is not on DBus, but as it is not in the
+        // MissingIsAcceptable list, the sensor should be built with a failed
+        // state to send the zone to failsafe mode. Everything will recover if
+        // all important sensors are back to DBus. swampd will be informed
+        // through InterfacesAdded signals and the sensors will be built again.
+
+        // CASE2: The sensor is in the MissingIsAcceptable list and it EXISTS on
+        // DBus (which sends it all the way here). However, swampd fails to
+        // initialize its setting here because of some DBus error???
+        // (getService/getProperties/getThresholdAssertion). Build it as a
+        // failed sensor too. A DBus signal will inform if there's s new
+        // property value to the sensor and will recover its state when the new
+        // value is valid.
+
+        // In both cases, the Sensor::getFailed() and
+        // DbusPidZone::markSensorMissing() APIs will decide whether to add a
+        // failed sensor to the _failSafeSensors list. As _failed=true,
+        // _available=false and _badReading=false (due to updateValue(nan,
+        // true)), both cases will have getFailed()=true at the beginning as
+        // long as _unavailableAsFailed=true; However as CASE2 has the sensor in
+        // MissingIsAcceptable list, only CASE1 will send the zone to failSafe
+        // mode.
+
+        failed = true;
+        settings.value = std::numeric_limits<double>::quiet_NaN();
+        settings.unit = getSensorUnit(type);
+        settings.available = false;
+        std::cerr << "DbusPassive: Sensor " << path
+                  << " is missing from D-Bus, build this sensor as failed\n";
+#endif
     }
 
     /* if these values are zero, they're ignored. */
