diff --git a/monitor/system.cpp b/monitor/system.cpp
index 22279da..01f1a9b 100644
--- a/monitor/system.cpp
+++ b/monitor/system.cpp
@@ -26,6 +26,8 @@
 
 #include "config.h"
 
+#include "hwmon_ffdc.hpp"
+
 #include <nlohmann/json.hpp>
 #include <phosphor-logging/log.hpp>
 #include <sdbusplus/bus.hpp>
@@ -209,6 +211,16 @@
             throw std::runtime_error("No conf file found at power on");
         }
 
+        // If no fan has its sensors on D-Bus, then there is a problem
+        // with the fan controller.  Log an error and shut down.
+        if (std::all_of(_fans.begin(), _fans.end(), [](const auto& fan) {
+                return fan->numSensorsOnDBusAtPowerOn() == 0;
+            }))
+        {
+            handleOfflineFanController();
+            return;
+        }
+
         std::for_each(_powerOffRules.begin(), _powerOffRules.end(),
                       [this](auto& rule) {
                           rule->check(PowerRuleState::atPgood, _fanHealth);
@@ -326,4 +338,18 @@
     return data;
 }
 
+void System::handleOfflineFanController()
+{
+    getLogger().log("The fan controller appears to be offline.  Shutting down.",
+                    Logger::error);
+
+    auto ffdc = collectHwmonFFDC();
+
+    FanError error{"xyz.openbmc_project.Fan.Error.FanControllerOffline",
+                   Severity::Critical};
+    error.commit(ffdc, true);
+
+    PowerInterface::executeHardPowerOff();
+}
+
 } // namespace phosphor::fan::monitor
