diff --git a/occ_manager.cpp b/occ_manager.cpp
index 4dc231f..88b0d26 100644
--- a/occ_manager.cpp
+++ b/occ_manager.cpp
@@ -403,7 +403,7 @@
         }
 #ifdef READ_OCC_SENSORS
         // Clear OCC sensors
-        setSensorValueToNonFunctional(instance);
+        setSensorValueToNaN(instance);
 #endif
     }
 
@@ -664,7 +664,7 @@
             // OCC is not running yet
 #ifdef READ_OCC_SENSORS
             auto id = obj->getOccInstanceID();
-            setSensorValueToNonFunctional(id);
+            setSensorValueToNaN(id);
 #endif
             continue;
         }
@@ -842,6 +842,7 @@
             continue;
         }
 
+        // NOTE: if OCC sends back 0xFF kernal sets this fault value to 1.
         if (faultValue != 0)
         {
             dbus::OccDBusSensors::getOccDBus().setValue(
@@ -1005,7 +1006,7 @@
     return;
 }
 
-void Manager::setSensorValueToNaN(uint32_t id)
+void Manager::setSensorValueToNaN(uint32_t id) const
 {
     for (const auto& [sensorPath, occId] : existingSensors)
     {
@@ -1013,6 +1014,9 @@
         {
             dbus::OccDBusSensors::getOccDBus().setValue(
                 sensorPath, std::numeric_limits<double>::quiet_NaN());
+
+            dbus::OccDBusSensors::getOccDBus().setOperationalStatus(sensorPath,
+                                                                    true);
         }
     }
     return;
