diff --git a/convlab/policy/mle/loader.py b/convlab/policy/mle/loader.py
index 9c10d2a7a3841efb55ba418e5cf56708e4e94b7d..5af5ddf34c7be5504b5a714e0fdc3dc7b07acf3d 100755
--- a/convlab/policy/mle/loader.py
+++ b/convlab/policy/mle/loader.py
@@ -105,7 +105,8 @@ class PolicyDataVectorizer:
                 state['terminated'] = data_point['terminated']
                 if self.dst is not None and state['terminated']:
                     self.dst.init_session()
-                state['booked'] = data_point['booked']
+                if "booked" in data_point:
+                    state['booked'] = data_point['booked']
                 dialogue_act = flatten_acts(data_point['dialogue_acts'])
 
                 vectorized_state, mask = self.vector.state_vectorize(state)
diff --git a/convlab/policy/vector/vector_binary.py b/convlab/policy/vector/vector_binary.py
index c6b02a1122adac3002ad1e32dd1f495046d0e6be..e444dec262cc8c8bd39307c09ca9d0600ee8728b 100755
--- a/convlab/policy/vector/vector_binary.py
+++ b/convlab/policy/vector/vector_binary.py
@@ -47,8 +47,15 @@ class VectorBinary(VectorBase):
         opp_act_vec = self.vectorize_user_act(state)
         last_act_vec = self.vectorize_system_act(state)
         belief_state, domain_active_dict = self.vectorize_belief_state(state, domain_active_dict)
-        book = self.vectorize_booked(state)
-        degree, number_entities_dict = self.pointer()
+        if "booked" in state:
+            book = self.vectorize_booked(state)
+        else:
+            book = []
+        if self.db is not None:
+            degree, number_entities_dict = self.pointer()
+        else:
+            degree = []
+            number_entities_dict = {}
         final = 1. if state['terminated'] else 0.
 
         state_vec = np.r_[opp_act_vec, last_act_vec,
@@ -82,13 +89,14 @@ class VectorBinary(VectorBase):
         belief_state = np.zeros(self.belief_state_dim)
         i = 0
         for domain in self.belief_domains:
-            for slot, value in state['belief_state'][domain].items():
-                if value:
-                    belief_state[i] = 1.
-                i += 1
-
-            if [slot for slot, value in state['belief_state'][domain].items() if value]:
-                domain_active_dict[domain] = True
+            if domain in state['belief_state']:
+                for slot, value in state['belief_state'][domain].items():
+                    if value:
+                        belief_state[i] = 1.
+                    i += 1
+
+                if [slot for slot, value in state['belief_state'][domain].items() if value]:
+                    domain_active_dict[domain] = True
         return belief_state, domain_active_dict
 
     def vectorize_system_act(self, state):
diff --git a/convlab/util/analysis_tool/analyzer.py b/convlab/util/analysis_tool/analyzer.py
index 5163bee1e151b3d8855a481222d753a862f1f783..82284ec85d87033648e0a30017b71cb8cf5921c0 100755
--- a/convlab/util/analysis_tool/analyzer.py
+++ b/convlab/util/analysis_tool/analyzer.py
@@ -156,7 +156,7 @@ class Analyzer:
                     break
 
             task_success = sess.evaluator.task_success()
-            task_complete = sess.user_agent.policy.policy.goal.task_complete()
+            task_complete = sess.evaluator.complete
             book_rate = sess.evaluator.book_rate()
             stats = sess.evaluator.inform_F1()