diff --git a/README.md b/README.md
index 1f501b73..f8cb20d6 100644
--- a/README.md
+++ b/README.md
@@ -449,7 +449,7 @@ $ make
 $ ./json_unit "*"
 
 ===============================================================================
-All tests passed (5568699 assertions in 31 test cases)
+All tests passed (5568703 assertions in 31 test cases)
 ```
 
 For more information, have a look at the file [.travis.yml](https://github.com/nlohmann/json/blob/master/.travis.yml).
diff --git a/src/json.hpp b/src/json.hpp
index 6b22e89d..932ab9e5 100644
--- a/src/json.hpp
+++ b/src/json.hpp
@@ -9708,7 +9708,8 @@ basic_json_parser_63:
 
                     default:
                     {
-                        throw std::domain_error("unexpected parent type " + parent.type_name());
+                        // if there exists a parent it cannot be primitive
+                        assert(false);  // LCOV_EXCL_LINE
                     }
                 }
             }
diff --git a/src/json.hpp.re2c b/src/json.hpp.re2c
index 3dab33bb..77a1eea9 100644
--- a/src/json.hpp.re2c
+++ b/src/json.hpp.re2c
@@ -9018,7 +9018,8 @@ class basic_json
 
                     default:
                     {
-                        throw std::domain_error("unexpected parent type " + parent.type_name());
+                        // if there exists a parent it cannot be primitive
+                        assert(false);  // LCOV_EXCL_LINE
                     }
                 }
             }
diff --git a/test/unit.cpp b/test/unit.cpp
index 2ad28a74..de00166f 100644
--- a/test/unit.cpp
+++ b/test/unit.cpp
@@ -12094,6 +12094,12 @@ TEST_CASE("JSON pointers")
 
         CHECK_THROWS_AS(json::json_pointer("/~"), std::domain_error);
         CHECK_THROWS_WITH(json::json_pointer("/~"), "escape error: '~' must be followed with '0' or '1'");
+
+        json::json_pointer p;
+        CHECK_THROWS_AS(p.top(), std::domain_error);
+        CHECK_THROWS_WITH(p.top(), "JSON pointer has no parent");
+        CHECK_THROWS_AS(p.pop_back(), std::domain_error);
+        CHECK_THROWS_WITH(p.pop_back(), "JSON pointer has no parent");
     }
 
     SECTION("examples from RFC 6901")