diff --git a/src/ledservice/ledstatus.cpp b/src/ledservice/ledstatus.cpp
index a51ea2ac2979d0686c22ab16b92c5ef419b7f945..6ce65c69221e8a66b930e49fba464d12ac88bc84 100644
--- a/src/ledservice/ledstatus.cpp
+++ b/src/ledservice/ledstatus.cpp
@@ -109,6 +109,9 @@ std::vector<bool> LedStatus::GetStatus() const {
 }
 
 bool LedStatus::IsLedOn(size_t index) const {
+  if (lights_hal_)
+    return hal_led_status_[index];
+
   brillo::StreamPtr stream = GetLEDDataStream(index, false);
   if (!stream)
     return false;