diff --git a/firmware_handler.cpp b/firmware_handler.cpp
index 1980760..9bcdd39 100644
--- a/firmware_handler.cpp
+++ b/firmware_handler.cpp
@@ -15,6 +15,12 @@
     FirmwareBlobHandler::CreateFirmwareBlobHandler(
         const std::vector<std::string>& firmwares, std::uint32_t transports)
 {
+    /* There must be at least one. */
+    if (!firmwares.size())
+    {
+        return nullptr;
+    }
+
     std::vector<std::string> blobs = firmwares;
     blobs.push_back(hashBlobID);
 
diff --git a/main.cpp b/main.cpp
index ba2389a..ec0f53b 100644
--- a/main.cpp
+++ b/main.cpp
@@ -31,10 +31,18 @@
     supportedTransports |= static_cast<std::uint32_t>(FirmwareUpdateFlags::lpc);
 #endif
 
+    auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler(
+        supportedFirmware, supportedTransports);
+
+    if (!handler)
+    {
+        log<level::ERR>("Firmware Handler has invalid configuration");
+        return;
+    }
+
     auto* manager = getBlobManager();
-    if (!manager->registerHandler(
-            FirmwareBlobHandler::CreateFirmwareBlobHandler(
-                supportedFirmware, supportedTransports)))
+
+    if (!manager->registerHandler(std::move(handler)))
     {
         log<level::ERR>("Failed to register Firmware Handler");
     }
diff --git a/test/firmware_handler_unittest.cpp b/test/firmware_handler_unittest.cpp
index 97c28f8..8ef74c1 100644
--- a/test/firmware_handler_unittest.cpp
+++ b/test/firmware_handler_unittest.cpp
@@ -1,16 +1,25 @@
 #include "firmware_handler.hpp"
 
+#include <algorithm>
 #include <memory>
 
 #include <gtest/gtest.h>
 
 namespace blobs
 {
-TEST(FirmwareHandlerTest, CreateEmptyListVerifyHasHash)
+
+TEST(FirmwareHandlerTest, CreateEmptyListVerifyFails)
 {
     auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler({}, 0);
+    EXPECT_EQ(handler, nullptr);
+}
+TEST(FirmwareHandlerTest, CreateEmptyListVerifyHasHash)
+{
+    auto handler = FirmwareBlobHandler::CreateFirmwareBlobHandler({"asdf"}, 0);
     auto result = handler->getBlobIds();
-    EXPECT_EQ(1, result.size());
-    EXPECT_STREQ(result.at(0).c_str(), FirmwareBlobHandler::hashBlobID.c_str());
+    EXPECT_EQ(2, result.size());
+    EXPECT_EQ(2, std::count(result.begin(), result.end(), "asdf") +
+                     std::count(result.begin(), result.end(),
+                                FirmwareBlobHandler::hashBlobID));
 }
 } // namespace blobs
