diff --git a/include/nlohmann/detail/input/binary_reader.hpp b/include/nlohmann/detail/input/binary_reader.hpp
index 403a4d01..6f91f0df 100644
--- a/include/nlohmann/detail/input/binary_reader.hpp
+++ b/include/nlohmann/detail/input/binary_reader.hpp
@@ -300,7 +300,10 @@ class binary_reader
 
             if (not is_array)
             {
-                sax->key(key);
+                if (not sax->key(key))
+                {
+                    return false;
+                }
             }
 
             if (JSON_UNLIKELY(not parse_bson_element_internal(element_type, element_type_parse_position)))
diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp
index 1e7cf51e..931e7b36 100644
--- a/single_include/nlohmann/json.hpp
+++ b/single_include/nlohmann/json.hpp
@@ -6635,7 +6635,10 @@ class binary_reader
 
             if (not is_array)
             {
-                sax->key(key);
+                if (not sax->key(key))
+                {
+                    return false;
+                }
             }
 
             if (JSON_UNLIKELY(not parse_bson_element_internal(element_type, element_type_parse_position)))
diff --git a/test/src/unit-bson.cpp b/test/src/unit-bson.cpp
index 406f0800..4cd2f6ca 100644
--- a/test/src/unit-bson.cpp
+++ b/test/src/unit-bson.cpp
@@ -752,6 +752,28 @@ TEST_CASE("Incomplete BSON Input")
         SaxCountdown scp(0);
         CHECK(not json::sax_parse(incomplete_bson, &scp, json::input_format_t::bson));
     }
+
+    SECTION("Improve coverage")
+    {
+        SECTION("key")
+        {
+            json j = {{"key", "value"}};
+            auto bson_vec = json::to_bson(j);
+            SaxCountdown scp(2);
+            CHECK(not json::sax_parse(bson_vec, &scp, json::input_format_t::bson));
+        }
+
+        SECTION("array")
+        {
+            json j =
+            {
+                { "entry", json::array() }
+            };
+            auto bson_vec = json::to_bson(j);
+            SaxCountdown scp(2);
+            CHECK(not json::sax_parse(bson_vec, &scp, json::input_format_t::bson));
+        }
+    }
 }
 
 TEST_CASE("Unsupported BSON input")