diff --git a/chaos/common/message/MessagePSConsumer.cpp b/chaos/common/message/MessagePSConsumer.cpp
index 006ba33e1961ebe510db15676d9b7786b676392c..d4d4214e4ca14b5c8e713506eefd42ee119ab7d6 100644
--- a/chaos/common/message/MessagePSConsumer.cpp
+++ b/chaos/common/message/MessagePSConsumer.cpp
@@ -69,6 +69,10 @@ ele_uptr_t MessagePSConsumer::getMsg(int timeo) {
 
 int MessagePSConsumer::subscribe(const std::string& key) {
   std::string topic = key;
+  if(key.size()==0){
+      MRDERR_ << " empty subscription name";
+      return -1;
+  }
   std::replace(topic.begin(), topic.end(), '/', '.');
   std::replace(topic.begin(), topic.end(), ':', '.');
 
diff --git a/chaos/common/message/impl/kafka/rdk/MessagePSRDKafkaConsumer.cpp b/chaos/common/message/impl/kafka/rdk/MessagePSRDKafkaConsumer.cpp
index b3e42ce64f7fad6e89f16131b01914c3fc3308bf..6c80a5e72e7b47f9f915a4a1a7b1a68103d69256 100644
--- a/chaos/common/message/impl/kafka/rdk/MessagePSRDKafkaConsumer.cpp
+++ b/chaos/common/message/impl/kafka/rdk/MessagePSRDKafkaConsumer.cpp
@@ -145,7 +145,10 @@ int MessagePSRDKafkaConsumer::applyConfiguration() {
 }
 
 int MessagePSRDKafkaConsumer::subscribe(const std::string& key) {
-  MessagePSConsumer::subscribe(key);
+  int ret=MessagePSConsumer::subscribe(key);
+  if(ret!=0){
+    return ret;
+  }
   if (rk == NULL) {
     errstr = "apply configuration first!";
     MRDERR_ << errstr;