diff --git a/src/parser_yin.c b/src/parser_yin.c
index d5f2577..f7e703c 100644
--- a/src/parser_yin.c
+++ b/src/parser_yin.c
@@ -710,6 +710,8 @@
                 case YANG_ENUM:
                     break;
                 case YANG_ERROR_APP_TAG:
+                    ret = yin_parse_simple_element(ctx, subelem_attrs, data, kw, (const char **)subelem_info_rec->dest,
+                                                   YIN_ARG_VALUE, Y_STR_ARG, exts);
                     break;
                 case YANG_ERROR_MESSAGE:
                     ret = yin_parse_err_msg_element(ctx, data, (const char **)subelem_info_rec->dest, exts);
@@ -760,8 +762,8 @@
                 case YANG_MUST:
                     break;
                 case YANG_NAMESPACE:
-                    ret = yin_parse_simple_element(ctx, subelem_attrs, data, kw,
-                                                   (const char **)subelem_info_rec->dest, YIN_ARG_URI, Y_STR_ARG, exts);
+                    ret = yin_parse_simple_element(ctx, subelem_attrs, data, kw, (const char **)subelem_info_rec->dest,
+                                                   YIN_ARG_URI, Y_STR_ARG, exts);
                     break;
                 case YANG_NOTIFICATION:
                     break;
diff --git a/tests/src/test_parser_yin.c b/tests/src/test_parser_yin.c
index ba48468..962db69 100644
--- a/tests/src/test_parser_yin.c
+++ b/tests/src/test_parser_yin.c
@@ -671,11 +671,12 @@
                             "<error-message>"
                                 "<value>error-msg</value>"
                             "</error-message>"
+                            "<error-app-tag value=\"err-app-tag\"/>"
                         "</prefix>";
     struct lysp_ext_instance *exts = NULL;
     const char **if_features = NULL;
     struct yin_arg_record *attrs = NULL;
-    const char *value, *err_msg;
+    const char *value, *err_msg, *app_tag;
     struct lysp_ext *ext_def = NULL;
     struct lysp_when *when_p = NULL;
     uint8_t config = 0;
@@ -683,16 +684,18 @@
     lyxml_get_element(&st->yin_ctx->xml_ctx, &data, &prefix.value, &prefix.len, &name.value, &name.len);
     yin_load_attributes(st->yin_ctx, &data, &attrs);
 
-    struct yin_subelement subelems[7] = {{YANG_CONFIG, &config, 0},
+    struct yin_subelement subelems[8] = {{YANG_CONFIG, &config, 0},
+                                         {YANG_ERROR_APP_TAG, &app_tag, 0},
                                          {YANG_ERROR_MESSAGE, &err_msg, 0},
                                          {YANG_EXTENSION, &ext_def, 0},
                                          {YANG_IF_FEATURE, &if_features, 0},
                                          {YANG_WHEN, &when_p, 0},
                                          {YANG_CUSTOM, NULL, 0},
                                          {YIN_TEXT, &value, 0}};
-    ret = yin_parse_content(st->yin_ctx, subelems, 7, &data, YANG_PREFIX, NULL, &exts);
+    ret = yin_parse_content(st->yin_ctx, subelems, 8, &data, YANG_PREFIX, NULL, &exts);
     assert_int_equal(ret, LY_SUCCESS);
     assert_int_equal(st->yin_ctx->xml_ctx.status, LYXML_END);
+    /* check parsed values */
     assert_string_equal(exts->name, "custom");
     assert_string_equal(exts->argument, "totally amazing extension");
     assert_string_equal(value, "wsefsdf");
@@ -701,11 +704,14 @@
     assert_string_equal(when_p->ref, "when_ref");
     assert_int_equal(config, LYS_CONFIG_W);
     assert_string_equal(err_msg, "error-msg");
+    assert_string_equal(app_tag, "err-app-tag");
+    /* cleanup */
     lysp_ext_instance_free(st->ctx, exts);
     lysp_when_free(st->ctx, when_p);
     lysp_ext_free(st->ctx, ext_def);
     FREE_STRING(st->ctx, *if_features);
     FREE_STRING(st->ctx, err_msg);
+    FREE_STRING(st->ctx, app_tag);
     LY_ARRAY_FREE(if_features);
     LY_ARRAY_FREE(exts);
     LY_ARRAY_FREE(ext_def);
