diff --git a/include/ipmid/message/unpack.hpp b/include/ipmid/message/unpack.hpp
index fb2b066..5be92c9 100644
--- a/include/ipmid/message/unpack.hpp
+++ b/include/ipmid/message/unpack.hpp
@@ -99,26 +99,29 @@
             }
             return 0;
         }
+        else if constexpr (utility::is_tuple<T>::value)
+        {
+            bool priorError = p.unpackError;
+            size_t priorIndex = p.rawIndex;
+            // more stuff to unroll if partial bytes are out
+            size_t priorBitCount = p.bitCount;
+            fixed_uint_t<details::bitStreamSize> priorBits = p.bitStream;
+            int ret = p.unpack(t);
+            if (ret != 0)
+            {
+                t = T();
+                p.rawIndex = priorIndex;
+                p.bitStream = priorBits;
+                p.bitCount = priorBitCount;
+                p.unpackError = priorError;
+            }
+            return 0;
+        }
         else
         {
-            if constexpr (utility::is_tuple<T>::value)
-            {
-                bool priorError = p.unpackError;
-                size_t priorIndex = p.rawIndex;
-                // more stuff to unroll if partial bytes are out
-                size_t priorBitCount = p.bitCount;
-                fixed_uint_t<details::bitStreamSize> priorBits = p.bitStream;
-                int ret = p.unpack(t);
-                if (ret != 0)
-                {
-                    t = T();
-                    p.rawIndex = priorIndex;
-                    p.bitStream = priorBits;
-                    p.bitCount = priorBitCount;
-                    p.unpackError = priorError;
-                }
-                return 0;
-            }
+            static_assert(
+                utility::dependent_false<T>::value,
+                "Attempt to unpack a type that has no IPMI unpack operation");
         }
     }
 };
diff --git a/include/ipmid/utility.hpp b/include/ipmid/utility.hpp
index 79c76f7..0c39e92 100644
--- a/include/ipmid/utility.hpp
+++ b/include/ipmid/utility.hpp
@@ -214,6 +214,13 @@
 {
 };
 
+/** @brief used for static_assert in a constexpr-if else statement
+ */
+template <typename T>
+struct dependent_false : std::false_type
+{
+};
+
 } // namespace utility
 
 } // namespace ipmi
