diff --git a/src/parser/parser.yy b/src/parser/parser.yy
index e8b422e23bf0e35e817954770af1bac8d57618cf..821852f2ee0027101334831930d8c398966b655c 100644
--- a/src/parser/parser.yy
+++ b/src/parser/parser.yy
@@ -359,10 +359,6 @@ base_expression
     | BOOL {
         $$ = new ConstantExpression($1);
     }
-    | name_label {
-        $$ = new ConstantExpression(*$1);
-        delete $1;
-    }
     | KW_NULL {
         $$ = new ConstantExpression(NullType::__NULL__);
     }
diff --git a/src/parser/test/ParserTest.cpp b/src/parser/test/ParserTest.cpp
index 6cab13054f0bdf75176318603db25b48edceae99..7b1fc686f5cee0daea487de61f11150c12f9c312 100644
--- a/src/parser/test/ParserTest.cpp
+++ b/src/parser/test/ParserTest.cpp
@@ -1624,7 +1624,7 @@ TEST(Parser, ConfigOperation) {
     }
     {
         GQLParser parser;
-        std::string query = "UPDATE CONFIGS storage:name=value";
+        std::string query = "UPDATE CONFIGS storage:name=\"value\"";
         auto result = parser.parse(query);
         ASSERT_TRUE(result.ok()) << result.status();
     }
@@ -2020,4 +2020,21 @@ TEST(Parser, UseReservedKeyword) {
         ASSERT_TRUE(result.ok());
     }
 }
+
+TEST(Parser, IssueLabelAsExpression) {
+    // name label is not a valid expression, it's not value
+    {
+        GQLParser parser;
+        std::string query = "INSERT VERTEX person(name) VALUES \"1\":(name_label)";
+        auto result = parser.parse(query);
+        ASSERT_FALSE(result.ok());
+    }
+    {
+        GQLParser parser;
+        std::string query = "INSERT VERTEX person(name) VALUES \"1\":(`name_label`)";
+        auto result = parser.parse(query);
+        ASSERT_FALSE(result.ok());
+    }
+}
+
 }   // namespace nebula