diff --git a/common/cpp/unittests/json_parser/test_json_parser.cpp b/common/cpp/unittests/json_parser/test_json_parser.cpp
index dfc5f3c6c08e634e230ca637a6314f52c60cea9e..9c2bf4f4fd879d3722c9a36da48e8b5ba689469d 100644
--- a/common/cpp/unittests/json_parser/test_json_parser.cpp
+++ b/common/cpp/unittests/json_parser/test_json_parser.cpp
@@ -19,6 +19,7 @@ using ::testing::Return;
 using ::testing::SetArgPointee;
 using ::testing::HasSubstr;
 using ::testing::ElementsAre;
+using ::testing::Pair;
 using ::testing::DoAll;
 
 using asapo::JsonFileParser;
@@ -209,6 +210,54 @@ TEST(ParseString, StringArrayConvertToJson) {
     ASSERT_THAT(vec, ElementsAre("s1", "s2", "s3"));
 }
 
+TEST(ParseString, ObjectMemberArrayConvertToJson) {
+    std::string json = R"({"object":{"k1":"v1","k2":"v2","k3":"v3"}})";
+
+    JsonStringParser parser{json};
+
+    std::vector<std::string> vec;
+    auto err = parser.GetArrayObjectMembers("object", &vec);
+
+    ASSERT_THAT(err, Eq(nullptr));
+    ASSERT_THAT(vec, ElementsAre("k1", "k2", "k3"));
+}
+
+TEST(ParseString, DictionaryStringConvertToJson) {
+    std::string json = R"({"object":{"k1":"v1","k2":"v2","k3":"v3"}})";
+
+    JsonStringParser parser{json};
+
+    std::map<std::string, std::string> map;
+    auto err = parser.GetDictionaryString("object", &map);
+
+    ASSERT_THAT(err, Eq(nullptr));
+    ASSERT_THAT(map, ElementsAre(Pair("k1", "v1"), Pair("k2", "v2"), Pair("k3", "v3")));
+}
+
+TEST(ParseString, RawStringConvertToJson) {
+    std::string json = R"({"object":{"k1":"v1","k2":"v2","k3":"v3"}})";
+
+    JsonStringParser parser{json};
+
+    std::string value;
+    auto err = parser.GetRawString(&value);
+
+    ASSERT_THAT(err, Eq(nullptr));
+    ASSERT_THAT(json, Eq(value));
+}
+
+TEST(ParseString, ArrayRawStringConvertToJson) {
+    std::string json = R"({"array":[{"k1":"v1"},{"k2":"v2"},{"k3":"v3"}]})";
+
+    JsonStringParser parser{json};
+
+    std::vector<std::string> vec;
+    auto err = parser.GetArrayRawStrings("array", &vec);
+
+    ASSERT_THAT(err, Eq(nullptr));
+    ASSERT_THAT(vec, ElementsAre(R"({"k1":"v1"})", R"({"k2":"v2"})", R"({"k3":"v3"})"));
+}
+
 class ParseFileTests : public Test {
   public:
     NiceMock<MockIO> mock_io;
diff --git a/receiver/src/receiver_config.cpp b/receiver/src/receiver_config.cpp
index c32526d3f85f733357d2fd44d4186bc2c74c541c..ae62336fc5405b2b98f6058f52134089bf87a37a 100644
--- a/receiver/src/receiver_config.cpp
+++ b/receiver/src/receiver_config.cpp
@@ -42,7 +42,9 @@ Error ReceiverConfigManager::ReadConfigFromFile(std::string file_name) {
     (err = parser.GetString("LogLevel", &log_level)) ||
     (err = parser.Embedded("Kafka").GetBool("Enabled", &kafkaEnabled));
 
-
+    if (err) {
+        return err;
+    }
 
     if (kafkaEnabled) {
         // read the configuration only if kafka is enabled. empty configuration means "disabled"