diff --git a/include/sdbusplus/message/append.hpp b/include/sdbusplus/message/append.hpp
index 31dad9f..38d79ab 100644
--- a/include/sdbusplus/message/append.hpp
+++ b/include/sdbusplus/message/append.hpp
@@ -225,11 +225,12 @@
     template <typename S>
     static void op(sdbusplus::SdBusInterface* intf, sd_bus_message* m, S&& s)
     {
-        constexpr auto dbusType = utility::tuple_to_array(types::type_id<T>());
+        constexpr auto dbusType =
+            utility::tuple_to_array(types::type_id<typename T::value_type>());
 
         intf->sd_bus_message_open_container(m, SD_BUS_TYPE_ARRAY,
-                                            dbusType.data() + 1);
-        for (auto&& i : s)
+                                            dbusType.data());
+        for (const typename T::value_type& i : s)
         {
             sdbusplus::message::append(intf, m, i);
         }
diff --git a/test/message/append.cpp b/test/message/append.cpp
index bbba074..936454e 100644
--- a/test/message/append.cpp
+++ b/test/message/append.cpp
@@ -294,6 +294,21 @@
     new_message().append(v);
 }
 
+TEST_F(AppendTest, VectorBoolean)
+{
+    const std::vector<bool> v{false, true, false, true};
+    {
+        testing::InSequence seq;
+        expect_open_container(SD_BUS_TYPE_ARRAY, "b");
+        for (const auto& i : v)
+        {
+            expect_basic<bool>(SD_BUS_TYPE_BOOLEAN, (int)i);
+        }
+        expect_close_container();
+    }
+    new_message().append(v);
+}
+
 TEST_F(AppendTest, VectorNestIntegral)
 {
     const std::vector<std::array<int32_t, 3>> v{
