diff --git a/dbus-sdr/storagecommands.cpp b/dbus-sdr/storagecommands.cpp
index 17ed9ff..b50db1a 100644
--- a/dbus-sdr/storagecommands.cpp
+++ b/dbus-sdr/storagecommands.cpp
@@ -112,12 +112,14 @@
 constexpr static const uint8_t deassertionEvent = 0x80;
 
 static std::vector<uint8_t> fruCache;
-static uint8_t cacheBus = 0xFF;
-static uint8_t cacheAddr = 0XFF;
+static constexpr uint16_t invalidBus = 0xFFFF;
+static constexpr uint8_t invalidAddr = 0xFF;
+static uint16_t cacheBus = invalidBus;
+static uint8_t cacheAddr = invalidAddr;
 static uint8_t lastDevId = 0xFF;
 
-static uint8_t writeBus = 0xFF;
-static uint8_t writeAddr = 0XFF;
+static uint16_t writeBus = invalidBus;
+static uint8_t writeAddr = invalidAddr;
 
 std::unique_ptr<phosphor::Timer> writeTimer = nullptr;
 static std::vector<sdbusplus::bus::match_t> fruMatches;
@@ -126,12 +128,12 @@
 
 // we unfortunately have to build a map of hashes in case there is a
 // collision to verify our dev-id
-boost::container::flat_map<uint8_t, std::pair<uint8_t, uint8_t>> deviceHashes;
+boost::container::flat_map<uint8_t, std::pair<uint16_t, uint8_t>> deviceHashes;
 void registerStorageFunctions() __attribute__((constructor));
 
 bool writeFru(const std::vector<uint8_t>& fru)
 {
-    if (writeBus == 0xFF && writeAddr == 0xFF)
+    if (writeBus == invalidBus && writeAddr == invalidAddr)
     {
         return true;
     }
@@ -152,8 +154,8 @@
             "error writing fru");
         return false;
     }
-    writeBus = 0xFF;
-    writeAddr = 0xFF;
+    writeBus = invalidBus;
+    writeAddr = invalidAddr;
     return true;
 }
 
@@ -193,7 +195,7 @@
             continue;
         }
 
-        uint8_t fruBus = std::get<uint32_t>(busFind->second);
+        uint16_t fruBus = std::get<uint32_t>(busFind->second);
         uint8_t fruAddr = std::get<uint32_t>(addrFind->second);
         auto chassisFind = fruIface->second.find("CHASSIS_TYPE");
         std::string chassisType;
@@ -213,7 +215,7 @@
                 fruHash = 1;
             }
         }
-        std::pair<uint8_t, uint8_t> newDev(fruBus, fruAddr);
+        std::pair<uint16_t, uint8_t> newDev(fruBus, fruAddr);
 
         bool emplacePassed = false;
         while (!emplacePassed)
@@ -286,8 +288,8 @@
             "Couldn't get raw fru",
             phosphor::logging::entry("ERROR=%s", ec.message().c_str()));
 
-        cacheBus = 0xFF;
-        cacheAddr = 0xFF;
+        cacheBus = invalidBus;
+        cacheAddr = invalidAddr;
         return {ipmi::ccResponseError, {}};
     }
 
@@ -577,7 +579,7 @@
         return IPMI_CC_INVALID_FIELD_REQUEST;
     }
     auto device = deviceHashes.begin() + index;
-    uint8_t& bus = device->second.first;
+    uint16_t& bus = device->second.first;
     uint8_t& address = device->second.second;
 
     boost::container::flat_map<std::string, Value>* fruData = nullptr;
