diff --git a/monitor/fan.cpp b/monitor/fan.cpp
index bbf8202..9fbe081 100644
--- a/monitor/fan.cpp
+++ b/monitor/fan.cpp
@@ -40,6 +40,9 @@
     _numSensorFailsForNonFunc(std::get<numSensorFailsForNonfuncField>(def)),
     _trustManager(trust)
 {
+    // Start from a known state of functional
+    updateInventory(true);
+
     // Setup tach sensors for monitoring
     auto& sensors = std::get<sensorListField>(def);
     for (auto& s : sensors)
@@ -55,12 +58,12 @@
             _trustManager->registerSensor(_sensors.back());
         }
         catch (InvalidSensorError& e)
-        {}
+        {
+            // mark associated fan as nonfunctional
+            updateInventory(false);
+        }
     }
 
-    // Start from a known state of functional
-    updateInventory(true);
-
     // Check current tach state when entering monitor mode
     if (mode != Mode::init)
     {
diff --git a/monitor/tach_sensor.cpp b/monitor/tach_sensor.cpp
index 42b826f..078b213 100644
--- a/monitor/tach_sensor.cpp
+++ b/monitor/tach_sensor.cpp
@@ -19,6 +19,8 @@
 #include "sdbusplus.hpp"
 #include "utility.hpp"
 
+#include <fmt/format.h>
+
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
 
@@ -92,8 +94,11 @@
         }
         catch (std::exception& e)
         {
-            log<level::INFO>("Not monitoring a tach sensor",
-                             entry("SENSOR=%s", _name.c_str()));
+            log<level::ERR>(
+                fmt::format("Failed to retrieve tach sensor {}", _name)
+                    .c_str());
+            // mark tach sensor as nonfunctional
+            setFunctional(false);
             throw InvalidSensorError();
         }
 
